@callimacus/thamyr-core 4.12.0 → 4.13.1
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/CHANGELOG.md +14 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.native.js +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/types/index.d.ts +336 -2
- package/dist/types/index.native.d.ts +336 -2
- package/package.json +2 -2
package/dist/esm/index.native.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* See LICENSE.md for the full terms.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import{io as e}from"socket.io-client";const t={ERROR:"error",CHAPTER_EVENT:"chapter-event",CHAPTER_DELETED:"chapter-deleted",STORY_RESET:"story-reset",STORY_CREATED:"story-created",STORY_SHARED:"story-shared",BLOCK_PATCH:"block-patch"},n={ERROR:"error",SYSTEM_MESSAGE:"system-message",SERVER_STATUS:"server-status",SERVER_RESPONSE:"server-response"},s={CLIENT_READY:"client-ready",USER_INTERACTION:"user-interaction"},r={question:"question",content:"content",topic:"topic",tag:"tag",image:"image",video:"video",gallery:"gallery",relatedQuestion:"relatedQuestion",page:"page",customInteraction:"customInteraction",customPage:"customPage"},i={masonry:"masonry",carousel:"carousel"},o={understandingQuery:1,craftingAnswer:2,curatingContent:3,done:4};function a(e){return e.type.startsWith("custom:")}function c(e){return"set"in e.type&&e.type.set}function l(e){return"master"in e.type&&e.type.master}const u={debug:0,info:1,warn:2,error:3,silent:4};const d=new class{config={enabled:!1,level:"info",prefix:"[Thamyr]"};debug=(...e)=>{this.log("debug",...e)};info=(...e)=>{this.log("info",...e)};warn=(...e)=>{this.log("warn",...e)};error=(...e)=>{this.log("error",...e)};log(e,...t){if(!(this.config.enabled&&u[e]>=u[this.config.level]))return;const{prefix:n}=this.config,s=void 0===n||""===n?t:[n,...t];console[e](...s)}configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};function h(e,t){const n=new URL(e),s=decodeURIComponent(n.pathname.slice(1)),r=(new TextEncoder).encode(JSON.stringify({bucket:"storage.callimacus.ai",key:s,edits:t})).toBase64();return`${n.origin}/${encodeURIComponent(r)}`}function y(){const e="undefined"==typeof crypto?void 0:crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if("function"==typeof e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(256*Math.random());t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=[...t].map(e=>e.toString(16).padStart(2,"0"));return[n.slice(0,4).join(""),n.slice(4,6).join(""),n.slice(6,8).join(""),n.slice(8,10).join(""),n.slice(10,16).join("")].join("-")}var p,f;function g(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.audioUrl&&"string"==typeof t.mimeType}function m(e){if("object"==typeof e&&null!==e)for(const t of Object.values(e))if(g(t))return t}!function(e){e.GET_STORY="get-story",e.CREATE_ROUND="create-round",e.RESET_STORY="reset-story",e.BACK_FROM_ROUND="back-from-round",e.SHARE_STORY="share-story",e.GET_SHARED_STORY="get-shared-story",e.SUGGEST="suggest"}(p||(p={})),function(e){e.ROUND_CREATED="round-created",e.ROUND_EVENT="round-event",e.ROUND_COMPLETED="round-completed",e.ERROR="error"}(f||(f={}));const b={productSelector:"[data-product-id]",blockSelector:"[data-block-id]",maxTrackedElements:40,minVisibilityRatio:.5};class v{elements=new Map;elementRefs=new Map;elementKeys=new WeakMap;blocks=new Map;blockRefs=new Map;blockKeys=new WeakMap;started=!1;config;constructor(e={}){const t=e.minVisibilityRatio??b.minVisibilityRatio;this.config={productSelector:e.productSelector??b.productSelector,blockSelector:e.blockSelector??b.blockSelector,maxTrackedElements:e.maxTrackedElements??b.maxTrackedElements,minVisibilityRatio:Math.min(1,Math.max(0,t))}}rescanUi(){if(!this.canUseDom())return;let e,t;try{e=document.querySelectorAll(this.config.productSelector),t=document.querySelectorAll(this.config.blockSelector)}catch(e){return void d.warn("UI Observer: invalid selector, skipping rescan:",e)}const n=Date.now();for(const t of e){const e=this.normalizeRect(t.getBoundingClientRect()),s=this.calculateVisibilityRatio(e);this.syncTrackedElement(t,{bounds:e,isVisible:s>=this.config.minVisibilityRatio,visibilityRatio:s,observedAt:n})}for(const e of t){const t=this.normalizeRect(e.getBoundingClientRect()),s=this.calculateVisibilityRatio(t);this.syncTrackedBlock(e,{bounds:t,isVisible:s>=this.config.minVisibilityRatio,visibilityRatio:s,observedAt:n})}this.pruneTrackedElements(),this.pruneTrackedBlocks()}pruneTrackedElements(){if(this.elements.size<=this.config.maxTrackedElements)return;const e=[...this.elements].sort(([,e],[,t])=>{const n=e.visibilityRatio-t.visibilityRatio;return 0===n||Number.isNaN(n)?e.observedAt-t.observedAt:n}).slice(0,this.elements.size-this.config.maxTrackedElements);for(const[t]of e)this.elements.delete(t),this.elementRefs.delete(t)}pruneTrackedBlocks(){if(this.blocks.size<=this.config.maxTrackedElements)return;const e=[...this.blocks].sort(([,e],[,t])=>{const n=e.visibilityRatio-t.visibilityRatio;return 0===n||Number.isNaN(n)?e.observedAt-t.observedAt:n}).slice(0,this.blocks.size-this.config.maxTrackedElements);for(const[t]of e)this.blocks.delete(t),this.blockRefs.delete(t)}syncTrackedElement(e,t){const n=this.resolveElementId(e),s=this.resolveBlockId(e),r=this.createTrackingKey(n,s),i=this.elementKeys.get(e);void 0!==i&&""!==i&&i!==r&&(this.elements.delete(i),this.elementRefs.delete(i)),this.elementKeys.set(e,r),this.elementRefs.set(r,e),this.elements.set(r,{id:n,blockId:s,trackingKey:r,...t})}syncTrackedBlock(e,t){const n=this.resolveTrackedBlockId(e),s=this.blockKeys.get(e),r=n;void 0!==s&&""!==s&&s!==r&&(this.blocks.delete(s),this.blockRefs.delete(s)),this.blockKeys.set(e,r),this.blockRefs.set(r,e),this.blocks.set(r,{id:n,...t})}resolveElementId(e){return[e.dataset.productId,e.dataset.productid,e.dataset.sku,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.productId??this.elements.size}`}resolveBlockId(e){let t;try{t=e.closest(this.config.blockSelector)??void 0}catch{return}return t instanceof HTMLElement?this.resolveTrackedBlockId(t):void 0}resolveTrackedBlockId(e){return[e.dataset.blockId,e.dataset.blockid,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.blockId??this.blocks.size}`}createTrackingKey(e,t){return void 0===t||""===t?e:`${e}::${t}`}normalizeRect(e){return{x:e.x,y:e.y,width:e.width,height:e.height,top:e.top,left:e.left,right:e.right,bottom:e.bottom}}calculateVisibilityRatio(e){const t=Math.max(0,Math.min(e.right,window.innerWidth)-Math.max(e.left,0))*Math.max(0,Math.min(e.bottom,window.innerHeight)-Math.max(e.top,0)),n=e.width*e.height;if(n<=0)return 0;const s=window.innerWidth*window.innerHeight,r=s>0?Math.min(n,s):n;return Math.min(1,Math.max(0,t/r))}canUseDom(){return void 0!==globalThis.window&&"undefined"!=typeof document}start(){!this.started&&this.canUseDom()&&(this.started=!0)}stop(){this.started&&(this.started=!1,this.elements.clear(),this.elementRefs.clear(),this.blocks.clear(),this.blockRefs.clear())}getSnapshot(){if(!this.canUseDom())return;this.rescanUi();const e=[],t=[],n=Date.now();for(const[t,n]of this.elements){const s=this.elementRefs.get(t);s?.isConnected?n.visibilityRatio<=0||e.push({blockId:n.blockId,element:{id:n.id,bounds:n.bounds,isVisible:n.visibilityRatio>=this.config.minVisibilityRatio,visibilityRatio:n.visibilityRatio}}):(this.elements.delete(t),this.elementRefs.delete(t))}for(const[e,n]of this.blocks){const s=this.blockRefs.get(e);s?.isConnected?n.visibilityRatio<this.config.minVisibilityRatio||t.push(n.id):(this.blocks.delete(e),this.blockRefs.delete(e))}const s=e.slice(0,this.config.maxTrackedElements);return{timestamp:n,viewport:{width:window.innerWidth,height:window.innerHeight},blockIds:[...new Set([...t,...s.flatMap(e=>e.blockId??[])])],elements:s.map(e=>e.element)}}}function k(e){const{data:t}=e;if("object"!=typeof t||null===t)return;const{code:n,reason:s}=t;return"number"==typeof n?{code:n,..."string"==typeof s&&{reason:s}}:void 0}const w=3;function R(e,t){return e>=500&&t<3}function S(e,t){return t?void 0:k(e)??{code:0}}class E{socket;serverResponseListeners=new Set;connectionStatusListeners=new Set;errorListeners=new Set;uiObserver;uiObserverConfig=b;handshakeRetryAttempts=0;handshakeRetryTimer;setupEventListeners(){this.socket&&(this.socket.on("connect",()=>{d.debug("Connected to Callimacus"),this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.updateConnectionStatus(!0),this.socket?.emit(s.CLIENT_READY)}),this.socket.on("disconnect",()=>{d.info("Disconnected from Callimacus"),this.updateConnectionStatus(!1)}),this.socket.on("connect_error",e=>{this.updateConnectionStatus(!1);const t=S(e,this.socket?.active??!0);t&&(d.error("Connection refused by Callimacus:",e.message,t.reason??""),this.notifyRejection(t,e.message),this.scheduleHandshakeRetry(t.code))}),this.socket.on(n.ERROR,e=>{d.error("Received error from Callimacus:",e),this.notifyErrorListeners(e)}),this.socket.io.on("reconnect",e=>{d.info(`Reconnected to Callimacus after ${e} attempts`)}),this.socket.io.on("reconnect_attempt",e=>{d.info(`Attempting to reconnect: attempt ${e}`)}),this.socket.io.on("reconnect_error",e=>{d.error("Reconnection error:",e)}),this.socket.io.on("reconnect_failed",()=>{d.error("Failed to reconnect to Callimacus service!"),this.updateConnectionStatus(!1)}),this.socket.on(n.SERVER_RESPONSE,e=>{this.notifyServerResponseListeners(e)}))}notifyServerResponseListeners(e){this.serverResponseListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in server response listener:",e)}})}updateConnectionStatus(e){this.connectionStatusListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in connection status listener:",e)}})}notifyRejection(e,t){this.notifyErrorListeners({code:e.code,message:t,...void 0!==e.reason&&{reason:e.reason}})}scheduleHandshakeRetry(e){if(!this.socket)return;if(this.clearHandshakeRetry(),!R(e,this.handshakeRetryAttempts))return void(e>=500&&(d.error("Giving up on the Callimacus connection after 3 retries"),this.notifyRejection({code:e,reason:"retries_exhausted"},"Connection failed after 3 retries; call connect() to try again")));const t=2**(this.handshakeRetryAttempts+1);this.handshakeRetryAttempts+=1,d.info(`Retrying Callimacus connection in ${t}s (attempt ${this.handshakeRetryAttempts}/3)`),this.handshakeRetryTimer=setTimeout(()=>{this.socket?.connect()},1e3*t)}clearHandshakeRetry(){void 0!==this.handshakeRetryTimer&&(clearTimeout(this.handshakeRetryTimer),this.handshakeRetryTimer=void 0)}notifyErrorListeners(e){this.errorListeners.forEach(t=>{try{t(e)}catch(e){d.error("Error in error listener:",e)}})}async getLocation(){if("undefined"!=typeof navigator&&"function"==typeof navigator.geolocation?.getCurrentPosition)return new Promise(e=>{navigator.geolocation.getCurrentPosition(t=>{e(t)},()=>{e(void 0)})})}enrichPayloadWithUiContext(e){try{this.ensureUiObserver();const t=this.uiObserver?.getSnapshot();return t?{...e,context:{...e.context,uiSnapshot:t}}:e}catch(t){return d.error("Error enriching payload with UI context:",t),e}}ensureUiObserver(){"undefined"!=typeof window&&"undefined"!=typeof document&&this.uiObserverConfig.enabled&&(this.uiObserver??=new v(this.uiObserverConfig),this.uiObserver.start())}socketEndpoint(e){const t=new URL(e),n=new URL("thamyr",t).pathname;return{origin:t.origin,path:n}}connect(t="wss://localhost:4000",n,s){this.socket&&(d.warn("Already connected to Thamyr. Disconnecting first...."),this.disconnect());const r=this.socketEndpoint(t);let i;"undefined"!=typeof window&&void 0!==globalThis.location&&(i=globalThis.location.href);const o={...void 0!==i&&""!==i&&{referrer:i},...s};d.info("Connecting to Thamyr at",r),this.socket=e(r.origin,{path:r.path,transports:["websocket","polling"],tryAllTransports:!0,extraHeaders:n,auth:o}),this.setupEventListeners(),this.ensureUiObserver()}disconnect(){this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.socket&&(this.socket.disconnect(),this.socket=void 0,this.uiObserver?.stop(),this.uiObserver=void 0,this.updateConnectionStatus(!1),d.info("Disconnected from Callimacus"))}configureUiObserver(e){if(!e)return this.uiObserver?.stop(),this.uiObserver=void 0,void(this.uiObserverConfig={...b,enabled:!1});const t=e.enabled??(void 0!==e.productSelector||void 0!==e.blockSelector||void 0!==e.maxTrackedElements||void 0!==e.minVisibilityRatio||this.uiObserverConfig.enabled);if(this.uiObserverConfig={...this.uiObserverConfig,...e,enabled:t},"undefined"==typeof window||"undefined"==typeof document||!this.uiObserverConfig.enabled)return this.uiObserver?.stop(),void(this.uiObserver=void 0);this.uiObserver&&this.uiObserver.stop(),this.uiObserver=new v(this.uiObserverConfig),this.uiObserver.start()}sendUserInteraction(e,t){if(!this.socket)return void d.error("Socket is not connected. Cannot send interaction.");if(e===p.SUGGEST)return void d.error("SUGGEST is a request/response command. Use suggest() instead.");if(e===p.BACK_FROM_ROUND){if(void 0===t.chapterId)return void d.error("BACK_FROM_ROUND requires chapterId.")}const n={type:e,payload:this.enrichPayloadWithUiContext(t)},r={id:y()};this.socket.emit(s.USER_INTERACTION,{type:n.type,payload:n.payload},r.id)}async suggest(e,t={}){if(!this.socket?.connected)return{suggestions:[]};try{return function(e){const t=e?.suggestions;return{suggestions:Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}}(await this.socket.timeout(t.timeoutMs??4e3).emitWithAck(s.USER_INTERACTION,{type:p.SUGGEST,payload:e}))}catch(e){return d.warn("Suggestions failed or timed out; serving none.",e),{suggestions:[]}}}async gatherClientInfo(){const e="undefined"==typeof navigator?void 0:navigator,t="undefined"==typeof window?void 0:window.screen;return{userAgent:e?.userAgent??"",language:e?.language??"",timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone,localTime:(new Date).toLocaleString(),screenResolution:void 0===t?"":`${t.width}x${t.height}`,location:await this.getLocation()}}onServerResponse(e){return this.serverResponseListeners.add(e),()=>{this.serverResponseListeners.delete(e)}}onConnectionStatus(e){return this.connectionStatusListeners.add(e),()=>{this.connectionStatusListeners.delete(e)}}onError(e){return this.errorListeners.add(e),()=>{this.errorListeners.delete(e)}}}const T=new E,O=200;function x(e,t={}){if(void 0!==e&&e.length>200)throw new RangeError("[thamyr] landing value exceeds 200 characters");return{inputEvent:{type:"customPage",data:void 0===e?{}:{value:e}},...t}}function I(e,t={}){const{block:n,payload:s,submissionId:r,value:i,...o}=t;return{inputEvent:{type:"customInteraction",data:{interactionId:e,...void 0!==n&&{nodeKey:n},...void 0!==s&&{payload:s},...void 0!==r&&{submissionId:r},...void 0!==i&&{value:i}}},...o}}function C(e){return e.receptors??e.intent??[]}function A(e){return"key"in e?e.key:void 0}const j="custom:addToCartResult";function U(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const _=e=>"string"==typeof e&&e.length>0,D=e=>U(e)&&_(e.size)&&_(e.variantId)&&"boolean"==typeof e.orderable;function $(e){if(!U(e.data)||!U(e.data.addToCart))return;const t=e.data.addToCart;return"error"===t.status?{status:"error"}:"resolved"===t.status&&_(t.variantId)&&_(t.productName)&&_(t.size)?{status:"resolved",variantId:t.variantId,productName:t.productName,size:t.size}:"size_selection_needed"===t.status&&_(t.productSku)&&_(t.productName)&&Array.isArray(t.availableSizes)&&t.availableSizes.every(D)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const N=e=>U(e)?e:{};function q(e,t,n){const[s,...r]=t;if(!U(e)||!Object.hasOwn(e,s))return;const i=0===r.length?function(e,t){if(U(e)&&"string"==typeof e.docId)return{...e,values:{...N(e.values),...t.values},inputs:{...N(e.inputs),...t.inputs},textRuns:{...N(e.textRuns),...t.textRuns}}}(e[s],n):q(e[s],r,n);return i&&{...e,[s]:i}}function z(e,t){const n=e.blocks??[],s=e.id===t.chapterId?n.findIndex(e=>e.id===t.blockId):-1;if(-1===s)return e;const r=n[s],i=q(r.data,t.contentId.split("."),t);return i?{...e,blocks:n.with(s,{...r,data:i})}:e}function L(e){const t=/^\/?map\/(?<language>[^\/]+)(?:\/(?<slug>.*))?$/v.exec(e)?.groups,n=t?.language;if(void 0===n||""===n)return;const s=t?.slug;return void 0===s||""===s?{language:n}:{language:n,slug:s}}async function K(e){try{const{data:t}=await e();return t}catch(e){if("object"==typeof e&&null!==e&&404===e.status)return;throw e}}async function B(e,t){const n=L(t);if(!n)return;const{language:s,slug:r}=n;if(void 0===r){const{data:t}=await e.content.listDocuments({language:s},{throwOnError:!0});return{kind:"index",language:s,entries:t}}const i=`/map/${s}/${r}`,o=await K(async()=>e.content.getDocumentByPath({path:i},{throwOnError:!0}));if(o)return{kind:"document",language:s,slug:r,document:o};if(!r.includes("/"))return;const a=await K(async()=>e.skesis.getItemByPath({path:i},{throwOnError:!0}));return a&&{kind:"item",language:s,slug:r,itemPage:a}}const M=["link","ask","interact","cart","submit"],P=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),V=e=>"string"==typeof e&&e.trim().length>0,H=new Set(["http:","https:","mailto:","tel:"]),W=e=>{try{return H.has(new URL(e,"https://relative.invalid").protocol)}catch{return!1}};function G(e){const{id:t,value:n,payload:s,block:r}=e,i=void 0===n||"string"==typeof n||(e=>Array.isArray(e)&&e.every(e=>"string"==typeof e))(n),o=void 0===s||P(s);if(i&&o&&(void 0===r||"string"==typeof r)&&V(t))return{type:"interact",id:t,...void 0!==n&&{value:n},...void 0!==s&&{payload:s},...void 0!==r&&{block:r}}}function F(e){if(P(e))switch(e.type){case"link":return function(e){const{url:t,newTab:n}=e;return(void 0===n||"boolean"==typeof n)&&V(t)&&W(t)?{type:"link",url:t,...void 0!==n&&{newTab:n}}:void 0}(e);case"ask":return V(e.value)?{type:"ask",value:e.value}:void 0;case"interact":return G(e);case"cart":return V(e.productId)?{type:"cart",productId:e.productId}:void 0;case"submit":return V(e.form)?{type:"submit",form:e.form}:void 0;default:return}}function Y(e){const t=e instanceof FormData?e:new FormData(e),n=[];for(const e of new Set(t.keys())){const s=t.getAll(e).filter(e=>"string"==typeof e),r=e.endsWith("[]");s.length>0&&n.push([r?e.slice(0,-2):e,r||s.length>1?s:s[0]])}return Object.fromEntries(n)}const J="custom:deliverResult",Q=new Set(["done","pending","ambiguous","skipped"]),Z=e=>void 0===e||"string"==typeof e,X=e=>P(e)&&"string"==typeof e.message&&Z(e.field),ee=e=>P(e)&&"string"==typeof e.status&&Q.has(e.status)&&Z(e.ref);function te(e){const t=e.type===J&&P(e.data)?e.data:void 0;if(void 0===t)return;const{status:n,submissionId:s,message:r,redirect:i,errors:o,results:a}=t;var c;return("accepted"===n||"refused"===n)&&V(s)&&Z(r)&&Z(i)&&(void 0===o||Array.isArray(o)&&o.every(X))&&(P(c=a)&&Object.values(c).every(ee))?{status:n,submissionId:s,results:a,...void 0!==r&&{message:r},...void 0!==i&&W(i)&&{redirect:i},...void 0!==o&&{errors:o}}:void 0}const ne=new Set;function se(e){ne.has(e)||(ne.add(e),d.warn(`${e}() is a browser-only intent API and does nothing on React Native. Use @callimacus/intent/native (initIntentNative) for intent tracking on native.`))}function re(e){se("setConsent")}function ie(e){se("setGeo")}function oe(e){se("setDebug")}function ae(e){se("setDebugPanel")}function ce(e={}){se("initIntent")}function le(){se("getIntentSessionId")}function ue(){se("ensureIntentSessionId")}function de(){se("clearIntentSessionId")}function he(e){se("setIntentSessionMaxAge")}const ye={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},pe=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function fe(e,t){t||(t=new Map);for(const n of e)"in"in n?n.key&&t.set(n.key,{in:n.in,map:n.map}):"key"in n?t.set(n.key,{map:n.map}):n.args&&fe(n.args,t);return t}function ge(e,t){const n={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},s=fe(t);function r(e,t,s){let r=n[e];void 0===r&&(r=Object.create(null),n[e]=r),r[t]=s}let i;for(const[o,a]of e.entries())if(t[o]&&(i=t[o]),i)if("in"in i)if(i.key){const e=s.get(i.key),t=e.map||i.key;e.in&&r(e.in,t,a)}else n.body=a;else for(const[e,t]of Object.entries(a??{})){const o=s.get(e);if(o)if(o.in){const n=o.map||e;r(o.in,n,t)}else n[o.map]=t;else{const n=pe.find(([t])=>e.startsWith(t));if(n){const[s,i]=n;r(i,e.slice(s.length),t)}else if("allowExtra"in i&&i.allowExtra)for(const[n,s]of Object.entries(i.allowExtra))if(s){r(n,e,t);break}}}return function(e){for(const[t,n]of Object.entries(e))"body"!==t&&(!n||"object"!=typeof n||Array.isArray(n)||Object.keys(n).length||delete e[t])}(n),n}const me=({allowReserved:e,explode:t,name:n,style:s,value:r})=>{if(!t){const t=(e?r:r.map(e=>encodeURIComponent(e))).join((e=>{switch(e){case"form":default:return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20"}})(s));switch(s){case"label":return`.${t}`;case"matrix":return`;${n}=${t}`;case"simple":return t;default:return`${n}=${t}`}}const i=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(s),o=r.map(t=>"label"===s||"simple"===s?e?t:encodeURIComponent(t):be({allowReserved:e,name:n,value:t})).join(i);return"label"===s||"matrix"===s?i+o:o},be=({allowReserved:e,name:t,value:n})=>{if(null==n)return"";if("object"==typeof n)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},ve=({allowReserved:e,explode:t,name:n,style:s,value:r,valueOnly:i})=>{if(r instanceof Date)return i?r.toISOString():`${n}=${r.toISOString()}`;if("deepObject"!==s&&!t){let t=[];Object.entries(r).forEach(([n,s])=>{t=[...t,n,e?s:encodeURIComponent(s)]});const i=t.join(",");switch(s){case"form":return`${n}=${i}`;case"label":return`.${i}`;case"matrix":return`;${n}=${i}`;default:return i}}const o=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(s),a=Object.entries(r).map(([t,r])=>be({allowReserved:e,name:"deepObject"===s?`${n}[${t}]`:t,value:r})).join(o);return"label"===s||"matrix"===s?o+a:a},ke=/\{[^{}]+\}/g,we=({baseUrl:e,path:t,query:n,querySerializer:s,url:r})=>{let i=(e??"")+(r.startsWith("/")?r:`/${r}`);t&&(i=(({path:e,url:t})=>{let n=t;const s=t.match(ke);if(s)for(const t of s){let s=!1,r=t.substring(1,t.length-1),i="simple";r.endsWith("*")&&(s=!0,r=r.substring(0,r.length-1)),r.startsWith(".")?(r=r.substring(1),i="label"):r.startsWith(";")&&(r=r.substring(1),i="matrix");const o=e[r];if(null==o)continue;if(Array.isArray(o)){n=n.replace(t,me({explode:s,name:r,style:i,value:o}));continue}if("object"==typeof o){n=n.replace(t,ve({explode:s,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){n=n.replace(t,`;${be({name:r,value:o})}`);continue}const a=encodeURIComponent("label"===i?`.${o}`:o);n=n.replace(t,a)}return n})({path:t,url:i}));let o=n?s(n):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(i+=`?${o}`),i};function Re(e){const t=void 0!==e.body;if(t&&e.bodySerializer){if("serializedBody"in e){return void 0!==e.serializedBody&&""!==e.serializedBody?e.serializedBody:null}return""!==e.body?e.body:null}if(t)return e.body}const Se=async(e,t)=>{const n="function"==typeof t?await t(e):t;if(n)return"bearer"===e.scheme?`Bearer ${n}`:"basic"===e.scheme?`Basic ${btoa(n)}`:n},Ee=({parameters:e={},...t}={})=>n=>{const s=[];if(n&&"object"==typeof n)for(const r in n){const i=n[r];if(null==i)continue;const o=e[r]||t;if(Array.isArray(i)){const e=me({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&s.push(e)}else if("object"==typeof i){const e=ve({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&s.push(e)}else{const e=be({allowReserved:o.allowReserved,name:r,value:i});e&&s.push(e)}}return s.join("&")},Te=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const Oe=e=>we({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:Ee(e.querySerializer),url:e.url}),xe=(e,t)=>{const n={...e,...t};return n.baseUrl?.endsWith("/")&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=Ce(e.headers,t.headers),n},Ie=e=>{const t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},Ce=(...e)=>{const t=new Headers;for(const n of e){if(!n)continue;const e=n instanceof Headers?Ie(n):Object.entries(n);for(const[n,s]of e)if(null===s)t.delete(n);else if(Array.isArray(s))for(const e of s)t.append(n,e);else void 0!==s&&t.set(n,"object"==typeof s?JSON.stringify(s):s)}return t};class Ae{fns=[];clear(){this.fns=[]}eject(e){const t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){const t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){return"number"==typeof e?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){const n=this.getInterceptorIndex(e);return!!this.fns[n]&&(this.fns[n]=t,e)}use(e){return this.fns.push(e),this.fns.length-1}}const je=Ee({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),Ue={"Content-Type":"application/json"},_e=(e={})=>({...ye,headers:Ue,parseAs:"auto",querySerializer:je,...e}),De=(e={})=>{let t=xe(_e(),e);const n=()=>({...t}),s={error:new Ae,request:new Ae,response:new Ae},r=async e=>{const n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:Ce(t.headers,e.headers),serializedBody:void 0};n.security&&await async function(e){for(const t of e.security??[]){if(Te(e,t.name))continue;const n=await Se(t,e.auth);if(!n)continue;const s=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[s]=n;break;case"cookie":e.headers.append("Cookie",`${s}=${n}`);break;default:e.headers.set(s,n)}}}(n),n.requestValidator&&await n.requestValidator(n),void 0!==n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),void 0!==n.body&&""!==n.serializedBody||n.headers.delete("Content-Type");return{opts:n,url:Oe(n)}},i=async e=>{const n=e.throwOnError??t.throwOnError,i=e.responseStyle??t.responseStyle;let o,a;try{const{opts:t,url:n}=await r(e),i={redirect:"follow",...t,body:Re(t)};o=new Request(n,i);for(const e of s.request.fns)e&&(o=await e(o,t));const c=t.fetch;a=await c(o);for(const e of s.response.fns)e&&(a=await e(a,o,t));const l={request:o,response:a};if(a.ok){const e=("auto"===t.parseAs?(e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();return t?t.startsWith("application/json")||t.endsWith("+json")?"json":"multipart/form-data"===t?"formData":["application/","audio/","image/","video/"].some(e=>t.startsWith(e))?"blob":t.startsWith("text/")?"text":void 0:void 0})(a.headers.get("Content-Type")):t.parseAs)??"json";if(204===a.status||"0"===a.headers.get("Content-Length")){let n;switch(e){case"arrayBuffer":case"blob":case"text":n=await a[e]();break;case"formData":n=new FormData;break;case"stream":n=a.body;break;default:n={}}return"data"===t.responseStyle?n:{data:n,...l}}let n;switch(e){case"arrayBuffer":case"blob":case"formData":case"text":n=await a[e]();break;case"json":{const e=await a.text();n=e?JSON.parse(e):{};break}case"stream":return"data"===t.responseStyle?a.body:{data:a.body,...l}}return"json"===e&&(t.responseValidator&&await t.responseValidator(n),t.responseTransformer&&(n=await t.responseTransformer(n))),"data"===t.responseStyle?n:{data:n,...l}}const u=await a.text();let d;try{d=JSON.parse(u)}catch{}throw d??u}catch(t){let r=t;for(const t of s.error.fns)t&&(r=await t(r,a,o,e));if(r=r||{},n)throw r;return"data"===i?void 0:{error:r,request:o,response:a}}},o=e=>t=>i({...t,method:e}),a=e=>async t=>{const{opts:n,url:i}=await r(t);return function({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:s,responseValidator:r,sseDefaultRetryDelay:i,sseMaxRetryAttempts:o,sseMaxRetryDelay:a,sseSleepFn:c,url:l,...u}){let d;const h=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=i??3e3,y=0;const p=u.signal??(new AbortController).signal;for(;!p.aborted;){y++;const i=u.headers instanceof Headers?u.headers:new Headers(u.headers);void 0!==d&&i.set("Last-Event-ID",d);try{const t={redirect:"follow",...u,body:u.serializedBody,headers:i,signal:p};let o=new Request(l,t);e&&(o=await e(l,t));const a=u.fetch??globalThis.fetch,h=await a(o);if(!h.ok)throw new Error(`SSE failed: ${h.status} ${h.statusText}`);if(!h.body)throw new Error("No body in SSE response");const y=h.body.pipeThrough(new TextDecoderStream).getReader();let f="";const g=()=>{try{y.cancel()}catch{}};p.addEventListener("abort",g);try{for(;;){const{done:e,value:t}=await y.read();if(e)break;f+=t,f=f.replace(/\r\n?/g,"\n");const i=f.split("\n\n");f=i.pop()??"";for(const e of i){const t=e.split("\n"),i=[];let o,a;for(const e of t)if(e.startsWith("data:"))i.push(e.replace(/^data:\s*/,""));else if(e.startsWith("event:"))o=e.replace(/^event:\s*/,"");else if(e.startsWith("id:"))d=e.replace(/^id:\s*/,"");else if(e.startsWith("retry:")){const t=Number.parseInt(e.replace(/^retry:\s*/,""),10);Number.isNaN(t)||(c=t)}let l=!1;if(i.length){const e=i.join("\n");try{a=JSON.parse(e),l=!0}catch{a=e}}l&&(r&&await r(a),s&&(a=await s(a))),n?.({data:a,event:o,id:d,retry:c}),i.length&&(yield a)}}}finally{p.removeEventListener("abort",g),y.releaseLock()}break}catch(e){if(t?.(e),void 0!==o&&y>=o)break;const n=Math.min(c*2**(y-1),a??3e4);await h(n)}}}()}}({...n,body:n.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(const e of s.request.fns)e&&(r=await e(r,n));return r},serializedBody:Re(n),url:i})};return{buildUrl:e=>Oe({...t,...e}),connect:o("CONNECT"),delete:o("DELETE"),get:o("GET"),getConfig:n,head:o("HEAD"),interceptors:s,options:o("OPTIONS"),patch:o("PATCH"),post:o("POST"),put:o("PUT"),request:i,setConfig:e=>(t=xe(t,e),n()),sse:{connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),head:a("HEAD"),options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),trace:a("TRACE")},trace:o("TRACE")}};class $e{client;constructor(e){this.client=e.client}}class Ne{defaultKey="default";instances=new Map;get(e){const t=this.instances.get(e??this.defaultKey);if(!t)throw new Error('No SDK client found. Create one with "new CallimacusApi()" to fix this error.');return t}set(e,t){this.instances.set(t??this.defaultKey,e)}}class qe extends $e{getPage(e,t){const n=ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/page/{language}/{id}",...t,...n})}listTopics(e,t){const n=ge([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}",...t,...n})}getTopicContents(e,t){const n=ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"idOrSlug"},{in:"query",key:"offset"},{in:"query",key:"limit"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}/{idOrSlug}",...t,...n})}getDocumentBySlug(e,t){const n=ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"slug"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/{language}/{slug}",...t,...n})}getDocumentByGroup(e,t){const n=ge([e],[{args:[{in:"path",key:"language"},{in:"path",key:"groupId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-group/{language}/{groupId}",...t,...n})}getDocumentByPath(e,t){const n=ge([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-path",...t,...n})}listDocuments(e,t){const n=ge([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/documents/{language}",...t,...n})}}class ze extends $e{getShared(e,t){const n=ge([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...n})}share(e,t){const n=ge([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...n})}}class Le extends $e{getSimilar(e,t){const n=ge([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"topK"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/similar",...t,...n})}getRecommendations(e,t){const n=ge([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/recommendations",...t,...n})}}class Ke extends $e{getLast(e,t){const n=ge([e],[{args:[{in:"query",key:"storyId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/whisper",...t,...n})}}class Be extends $e{trackEvent(e,t){const n=ge([e],[{args:[{in:"body",key:"storyId"},{in:"body",key:"eventName"},{in:"body",key:"content"},{in:"body",key:"payload"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/track-event",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}}class Me extends $e{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const n=ge([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/add",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}removeItemFromCart(e,t){const n=ge([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/remove",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}updateProductQuantity(e,t){const n=ge([e],[{args:[{in:"body",key:"productId"},{in:"body",key:"quantity"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/update",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}}class Pe extends $e{similar(e,t){const n=ge([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"topK"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/similar",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}related(e,t){const n=ge([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/related",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}getItemByPath(e,t){const n=ge([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/item/by-path",...t,...n})}}class Ve extends $e{static __registry=new Ne;constructor(e){super(e),Ve.__registry.set(this,e.key)}_content;get content(){return this._content??=new qe({client:this.client})}_stories;get stories(){return this._stories??=new ze({client:this.client})}_products;get products(){return this._products??=new Le({client:this.client})}_whisper;get whisper(){return this._whisper??=new Ke({client:this.client})}_analytics;get analytics(){return this._analytics??=new Be({client:this.client})}_cart;get cart(){return this._cart??=new Me({client:this.client})}_skesis;get skesis(){return this._skesis??=new Pe({client:this.client})}}class He extends Error{status;body;response;request;constructor(e,t,n){const s=t?.status,r=n?`${n.method} ${n.url}`:"request";let i=`[thamyr] ${r} failed before a response arrived`;t&&(i=t.ok?`[thamyr] ${r} → ${t.status}, but the response could not be processed`:`[thamyr] ${r} → ${t.status}`),super(i,e instanceof Error?{cause:e}:void 0),this.name="ThamyrHttpError",this.status=s,this.body=e,this.response=t,this.request=n}}function We(e){const t=De(_e({baseUrl:new URL("api/v3",e.endpoint).href,headers:{Authorization:`Bearer ${e.accessToken}`,"x-sl-access-token":e.accessToken},credentials:e.withCredentials?"include":"same-origin"}));return t.interceptors.error.use((e,n,s,r)=>{if(!(r.throwOnError??t.getConfig().throwOnError??!1)||!0===r.signal?.aborted)return e;return new He(""===e?{}:e??{},n,s)}),t}export{M as ACTION_TYPES,j as ADD_TO_CART_RESULT_BLOCK,Ve as CallimacusApi,f as CallimacusEvent,E as CallimacusService,o as ChapterStatus,s as ClientEvents,J as DELIVER_RESULT_BLOCK,i as GalleryMode,O as LANDING_VALUE_MAX_LENGTH,w as MAX_HANDSHAKE_RETRIES,r as SLInputEventType,n as ServerEvents,He as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,F as actionOf,$ as addToCartResultOf,z as applyBlockPatch,A as blockKeyOf,T as callimacusService,S as classifyConnectError,de as clearIntentSessionId,We as createContractClient,te as deliverResultOf,ue as ensureIntentSessionId,m as extractTtsAudio,Y as fieldsOf,le as getIntentSessionId,ce as initIntent,I as interactionRound,a as isCustomBlock,l as isMasterProduct,c as isSetProduct,x as landingRound,d as logger,k as parseConnectRejection,L as parseMapPath,y as randomUuid,C as receptorsOf,B as resolveMapPage,re as setConsent,oe as setDebug,ae as setDebugPanel,ie as setGeo,he as setIntentSessionMaxAge,R as shouldRetryHandshake,h as transformImageUrl};
|
|
8
|
+
import{io as e}from"socket.io-client";const t={ERROR:"error",CHAPTER_EVENT:"chapter-event",CHAPTER_DELETED:"chapter-deleted",STORY_RESET:"story-reset",STORY_CREATED:"story-created",STORY_SHARED:"story-shared",BLOCK_PATCH:"block-patch",CART_COMMAND:"cart-command"},n={ERROR:"error",SYSTEM_MESSAGE:"system-message",SERVER_STATUS:"server-status",SERVER_RESPONSE:"server-response"},r={CLIENT_READY:"client-ready",USER_INTERACTION:"user-interaction"},s={question:"question",content:"content",topic:"topic",tag:"tag",image:"image",video:"video",gallery:"gallery",relatedQuestion:"relatedQuestion",page:"page",customInteraction:"customInteraction",customPage:"customPage"},i={masonry:"masonry",carousel:"carousel"},o={understandingQuery:1,craftingAnswer:2,curatingContent:3,done:4};function a(e){return e.type.startsWith("custom:")}function c(e){return"set"in e.type&&e.type.set}function u(e){return"master"in e.type&&e.type.master}const d={debug:0,info:1,warn:2,error:3,silent:4};const l=new class{config={enabled:!1,level:"info",prefix:"[Thamyr]"};debug=(...e)=>{this.log("debug",...e)};info=(...e)=>{this.log("info",...e)};warn=(...e)=>{this.log("warn",...e)};error=(...e)=>{this.log("error",...e)};log(e,...t){if(!(this.config.enabled&&d[e]>=d[this.config.level]))return;const{prefix:n}=this.config,r=void 0===n||""===n?t:[n,...t];console[e](...r)}configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};function h(e,t){const n=new URL(e),r=decodeURIComponent(n.pathname.slice(1)),s=(new TextEncoder).encode(JSON.stringify({bucket:"storage.callimacus.ai",key:r,edits:t})).toBase64();return`${n.origin}/${encodeURIComponent(s)}`}function y(){const e="undefined"==typeof crypto?void 0:crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if("function"==typeof e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(256*Math.random());t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=[...t].map(e=>e.toString(16).padStart(2,"0"));return[n.slice(0,4).join(""),n.slice(4,6).join(""),n.slice(6,8).join(""),n.slice(8,10).join(""),n.slice(10,16).join("")].join("-")}var f,p;function m(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.audioUrl&&"string"==typeof t.mimeType}function g(e){if("object"==typeof e&&null!==e)for(const t of Object.values(e))if(m(t))return t}!function(e){e.GET_STORY="get-story",e.CREATE_ROUND="create-round",e.RESET_STORY="reset-story",e.BACK_FROM_ROUND="back-from-round",e.SHARE_STORY="share-story",e.GET_SHARED_STORY="get-shared-story",e.SUGGEST="suggest"}(f||(f={})),function(e){e.ROUND_CREATED="round-created",e.ROUND_EVENT="round-event",e.ROUND_COMPLETED="round-completed",e.ERROR="error"}(p||(p={}));const v={productSelector:"[data-product-id]",blockSelector:"[data-block-id]",maxTrackedElements:40,minVisibilityRatio:.5};class b{elements=new Map;elementRefs=new Map;elementKeys=new WeakMap;blocks=new Map;blockRefs=new Map;blockKeys=new WeakMap;started=!1;config;constructor(e={}){const t=e.minVisibilityRatio??v.minVisibilityRatio;this.config={productSelector:e.productSelector??v.productSelector,blockSelector:e.blockSelector??v.blockSelector,maxTrackedElements:e.maxTrackedElements??v.maxTrackedElements,minVisibilityRatio:Math.min(1,Math.max(0,t))}}rescanUi(){if(!this.canUseDom())return;let e,t;try{e=document.querySelectorAll(this.config.productSelector),t=document.querySelectorAll(this.config.blockSelector)}catch(e){return void l.warn("UI Observer: invalid selector, skipping rescan:",e)}const n=Date.now();for(const t of e){const e=this.normalizeRect(t.getBoundingClientRect()),r=this.calculateVisibilityRatio(e);this.syncTrackedElement(t,{bounds:e,isVisible:r>=this.config.minVisibilityRatio,visibilityRatio:r,observedAt:n})}for(const e of t){const t=this.normalizeRect(e.getBoundingClientRect()),r=this.calculateVisibilityRatio(t);this.syncTrackedBlock(e,{bounds:t,isVisible:r>=this.config.minVisibilityRatio,visibilityRatio:r,observedAt:n})}this.pruneTrackedElements(),this.pruneTrackedBlocks()}pruneTrackedElements(){if(this.elements.size<=this.config.maxTrackedElements)return;const e=[...this.elements].sort(([,e],[,t])=>{const n=e.visibilityRatio-t.visibilityRatio;return 0===n||Number.isNaN(n)?e.observedAt-t.observedAt:n}).slice(0,this.elements.size-this.config.maxTrackedElements);for(const[t]of e)this.elements.delete(t),this.elementRefs.delete(t)}pruneTrackedBlocks(){if(this.blocks.size<=this.config.maxTrackedElements)return;const e=[...this.blocks].sort(([,e],[,t])=>{const n=e.visibilityRatio-t.visibilityRatio;return 0===n||Number.isNaN(n)?e.observedAt-t.observedAt:n}).slice(0,this.blocks.size-this.config.maxTrackedElements);for(const[t]of e)this.blocks.delete(t),this.blockRefs.delete(t)}syncTrackedElement(e,t){const n=this.resolveElementId(e),r=this.resolveBlockId(e),s=this.createTrackingKey(n,r),i=this.elementKeys.get(e);void 0!==i&&""!==i&&i!==s&&(this.elements.delete(i),this.elementRefs.delete(i)),this.elementKeys.set(e,s),this.elementRefs.set(s,e),this.elements.set(s,{id:n,blockId:r,trackingKey:s,...t})}syncTrackedBlock(e,t){const n=this.resolveTrackedBlockId(e),r=this.blockKeys.get(e),s=n;void 0!==r&&""!==r&&r!==s&&(this.blocks.delete(r),this.blockRefs.delete(r)),this.blockKeys.set(e,s),this.blockRefs.set(s,e),this.blocks.set(s,{id:n,...t})}resolveElementId(e){return[e.dataset.productId,e.dataset.productid,e.dataset.sku,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.productId??this.elements.size}`}resolveBlockId(e){let t;try{t=e.closest(this.config.blockSelector)??void 0}catch{return}return t instanceof HTMLElement?this.resolveTrackedBlockId(t):void 0}resolveTrackedBlockId(e){return[e.dataset.blockId,e.dataset.blockid,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.blockId??this.blocks.size}`}createTrackingKey(e,t){return void 0===t||""===t?e:`${e}::${t}`}normalizeRect(e){return{x:e.x,y:e.y,width:e.width,height:e.height,top:e.top,left:e.left,right:e.right,bottom:e.bottom}}calculateVisibilityRatio(e){const t=Math.max(0,Math.min(e.right,window.innerWidth)-Math.max(e.left,0))*Math.max(0,Math.min(e.bottom,window.innerHeight)-Math.max(e.top,0)),n=e.width*e.height;if(n<=0)return 0;const r=window.innerWidth*window.innerHeight,s=r>0?Math.min(n,r):n;return Math.min(1,Math.max(0,t/s))}canUseDom(){return void 0!==globalThis.window&&"undefined"!=typeof document}start(){!this.started&&this.canUseDom()&&(this.started=!0)}stop(){this.started&&(this.started=!1,this.elements.clear(),this.elementRefs.clear(),this.blocks.clear(),this.blockRefs.clear())}getSnapshot(){if(!this.canUseDom())return;this.rescanUi();const e=[],t=[],n=Date.now();for(const[t,n]of this.elements){const r=this.elementRefs.get(t);r?.isConnected?n.visibilityRatio<=0||e.push({blockId:n.blockId,element:{id:n.id,bounds:n.bounds,isVisible:n.visibilityRatio>=this.config.minVisibilityRatio,visibilityRatio:n.visibilityRatio}}):(this.elements.delete(t),this.elementRefs.delete(t))}for(const[e,n]of this.blocks){const r=this.blockRefs.get(e);r?.isConnected?n.visibilityRatio<this.config.minVisibilityRatio||t.push(n.id):(this.blocks.delete(e),this.blockRefs.delete(e))}const r=e.slice(0,this.config.maxTrackedElements);return{timestamp:n,viewport:{width:window.innerWidth,height:window.innerHeight},blockIds:[...new Set([...t,...r.flatMap(e=>e.blockId??[])])],elements:r.map(e=>e.element)}}}function k(e){const{data:t}=e;if("object"!=typeof t||null===t)return;const{code:n,reason:r}=t;return"number"==typeof n?{code:n,..."string"==typeof r&&{reason:r}}:void 0}const w=3;function R(e,t){return e>=500&&t<3}function T(e,t){return t?void 0:k(e)??{code:0}}class S{socket;serverResponseListeners=new Set;connectionStatusListeners=new Set;errorListeners=new Set;uiObserver;uiObserverConfig=v;handshakeRetryAttempts=0;handshakeRetryTimer;setupEventListeners(){this.socket&&(this.socket.on("connect",()=>{l.debug("Connected to Callimacus"),this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.updateConnectionStatus(!0),this.socket?.emit(r.CLIENT_READY)}),this.socket.on("disconnect",()=>{l.info("Disconnected from Callimacus"),this.updateConnectionStatus(!1)}),this.socket.on("connect_error",e=>{this.updateConnectionStatus(!1);const t=T(e,this.socket?.active??!0);t&&(l.error("Connection refused by Callimacus:",e.message,t.reason??""),this.notifyRejection(t,e.message),this.scheduleHandshakeRetry(t.code))}),this.socket.on(n.ERROR,e=>{l.error("Received error from Callimacus:",e),this.notifyErrorListeners(e)}),this.socket.io.on("reconnect",e=>{l.info(`Reconnected to Callimacus after ${e} attempts`)}),this.socket.io.on("reconnect_attempt",e=>{l.info(`Attempting to reconnect: attempt ${e}`)}),this.socket.io.on("reconnect_error",e=>{l.error("Reconnection error:",e)}),this.socket.io.on("reconnect_failed",()=>{l.error("Failed to reconnect to Callimacus service!"),this.updateConnectionStatus(!1)}),this.socket.on(n.SERVER_RESPONSE,e=>{this.notifyServerResponseListeners(e)}))}notifyServerResponseListeners(e){this.serverResponseListeners.forEach(t=>{try{t(e)}catch(e){l.error("Error in server response listener:",e)}})}updateConnectionStatus(e){this.connectionStatusListeners.forEach(t=>{try{t(e)}catch(e){l.error("Error in connection status listener:",e)}})}notifyRejection(e,t){this.notifyErrorListeners({code:e.code,message:t,...void 0!==e.reason&&{reason:e.reason}})}scheduleHandshakeRetry(e){if(!this.socket)return;if(this.clearHandshakeRetry(),!R(e,this.handshakeRetryAttempts))return void(e>=500&&(l.error("Giving up on the Callimacus connection after 3 retries"),this.notifyRejection({code:e,reason:"retries_exhausted"},"Connection failed after 3 retries; call connect() to try again")));const t=2**(this.handshakeRetryAttempts+1);this.handshakeRetryAttempts+=1,l.info(`Retrying Callimacus connection in ${t}s (attempt ${this.handshakeRetryAttempts}/3)`),this.handshakeRetryTimer=setTimeout(()=>{this.socket?.connect()},1e3*t)}clearHandshakeRetry(){void 0!==this.handshakeRetryTimer&&(clearTimeout(this.handshakeRetryTimer),this.handshakeRetryTimer=void 0)}notifyErrorListeners(e){this.errorListeners.forEach(t=>{try{t(e)}catch(e){l.error("Error in error listener:",e)}})}async getLocation(){if("undefined"!=typeof navigator&&"function"==typeof navigator.geolocation?.getCurrentPosition)return new Promise(e=>{navigator.geolocation.getCurrentPosition(t=>{e(t)},()=>{e(void 0)})})}enrichPayloadWithUiContext(e){try{this.ensureUiObserver();const t=this.uiObserver?.getSnapshot();return t?{...e,context:{...e.context,uiSnapshot:t}}:e}catch(t){return l.error("Error enriching payload with UI context:",t),e}}ensureUiObserver(){"undefined"!=typeof window&&"undefined"!=typeof document&&this.uiObserverConfig.enabled&&(this.uiObserver??=new b(this.uiObserverConfig),this.uiObserver.start())}socketEndpoint(e){const t=new URL(e),n=new URL("thamyr",t).pathname;return{origin:t.origin,path:n}}connect(t="wss://localhost:4000",n,r){this.socket&&(l.warn("Already connected to Thamyr. Disconnecting first...."),this.disconnect());const s=this.socketEndpoint(t);let i;"undefined"!=typeof window&&void 0!==globalThis.location&&(i=globalThis.location.href);const o={...void 0!==i&&""!==i&&{referrer:i},...r};l.info("Connecting to Thamyr at",s),this.socket=e(s.origin,{path:s.path,transports:["websocket","polling"],tryAllTransports:!0,extraHeaders:n,auth:o}),this.setupEventListeners(),this.ensureUiObserver()}disconnect(){this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.socket&&(this.socket.disconnect(),this.socket=void 0,this.uiObserver?.stop(),this.uiObserver=void 0,this.updateConnectionStatus(!1),l.info("Disconnected from Callimacus"))}configureUiObserver(e){if(!e)return this.uiObserver?.stop(),this.uiObserver=void 0,void(this.uiObserverConfig={...v,enabled:!1});const t=e.enabled??(void 0!==e.productSelector||void 0!==e.blockSelector||void 0!==e.maxTrackedElements||void 0!==e.minVisibilityRatio||this.uiObserverConfig.enabled);if(this.uiObserverConfig={...this.uiObserverConfig,...e,enabled:t},"undefined"==typeof window||"undefined"==typeof document||!this.uiObserverConfig.enabled)return this.uiObserver?.stop(),void(this.uiObserver=void 0);this.uiObserver&&this.uiObserver.stop(),this.uiObserver=new b(this.uiObserverConfig),this.uiObserver.start()}sendUserInteraction(e,t){if(!this.socket)return void l.error("Socket is not connected. Cannot send interaction.");if(e===f.SUGGEST)return void l.error("SUGGEST is a request/response command. Use suggest() instead.");if(e===f.BACK_FROM_ROUND){if(void 0===t.chapterId)return void l.error("BACK_FROM_ROUND requires chapterId.")}const n={type:e,payload:this.enrichPayloadWithUiContext(t)},s={id:y()};this.socket.emit(r.USER_INTERACTION,{type:n.type,payload:n.payload},s.id)}async suggest(e,t={}){if(!this.socket?.connected)return{suggestions:[]};try{return function(e){const t=e?.suggestions;return{suggestions:Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}}(await this.socket.timeout(t.timeoutMs??4e3).emitWithAck(r.USER_INTERACTION,{type:f.SUGGEST,payload:e}))}catch(e){return l.warn("Suggestions failed or timed out; serving none.",e),{suggestions:[]}}}async gatherClientInfo(){const e="undefined"==typeof navigator?void 0:navigator,t="undefined"==typeof window?void 0:window.screen;return{userAgent:e?.userAgent??"",language:e?.language??"",timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone,localTime:(new Date).toLocaleString(),screenResolution:void 0===t?"":`${t.width}x${t.height}`,location:await this.getLocation()}}onServerResponse(e){return this.serverResponseListeners.add(e),()=>{this.serverResponseListeners.delete(e)}}onConnectionStatus(e){return this.connectionStatusListeners.add(e),()=>{this.connectionStatusListeners.delete(e)}}onError(e){return this.errorListeners.add(e),()=>{this.errorListeners.delete(e)}}}const E=new S,I=200;function C(e,t={}){if(void 0!==e&&e.length>200)throw new RangeError("[thamyr] landing value exceeds 200 characters");return{inputEvent:{type:"customPage",data:void 0===e?{}:{value:e}},...t}}function O(e,t={}){const{block:n,payload:r,submissionId:s,value:i,...o}=t;return{inputEvent:{type:"customInteraction",data:{interactionId:e,...void 0!==n&&{nodeKey:n},...void 0!==r&&{payload:r},...void 0!==s&&{submissionId:s},...void 0!==i&&{value:i}}},...o}}function A(e){return e.receptors??e.intent??[]}function x(e){return"key"in e?e.key:void 0}const $="custom:addToCartResult";function _(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const D=e=>"string"==typeof e&&e.length>0,q=e=>_(e)&&D(e.size)&&D(e.variantId)&&"boolean"==typeof e.orderable;function N(e){if(!_(e.data)||!_(e.data.addToCart))return;const t=e.data.addToCart;return"error"===t.status?{status:"error"}:"resolved"===t.status&&D(t.variantId)&&D(t.productName)&&D(t.size)?{status:"resolved",variantId:t.variantId,productName:t.productName,size:t.size}:"size_selection_needed"===t.status&&D(t.productSku)&&D(t.productName)&&Array.isArray(t.availableSizes)&&t.availableSizes.every(q)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const U=e=>_(e)?e:{};function j(e,t,n){const[r,...s]=t;if(!_(e)||!Object.hasOwn(e,r))return;const i=0===s.length?function(e,t){if(_(e)&&"string"==typeof e.docId)return{...e,values:{...U(e.values),...t.values},inputs:{...U(e.inputs),...t.inputs},textRuns:{...U(e.textRuns),...t.textRuns}}}(e[r],n):j(e[r],s,n);return i&&{...e,[r]:i}}function L(e,t){const n=e.blocks??[],r=e.id===t.chapterId?n.findIndex(e=>e.id===t.blockId):-1;if(-1===r)return e;const s=n[r],i=j(s.data,t.contentId.split("."),t);return i?{...e,blocks:n.with(r,{...s,data:i})}:e}function K(e){const t=/^\/?map\/(?<language>[^\/]+)(?:\/(?<slug>.*))?$/v.exec(e)?.groups,n=t?.language;if(void 0===n||""===n)return;const r=t?.slug;return void 0===r||""===r?{language:n}:{language:n,slug:r}}async function z(e){try{const{data:t}=await e();return t}catch(e){if("object"==typeof e&&null!==e&&404===e.status)return;throw e}}async function M(e,t){const n=K(t);if(!n)return;const{language:r,slug:s}=n;if(void 0===s){const{data:t}=await e.content.listDocuments({language:r},{throwOnError:!0});return{kind:"index",language:r,entries:t}}const i=`/map/${r}/${s}`,o=await z(async()=>e.content.getDocumentByPath({path:i},{throwOnError:!0}));if(o)return{kind:"document",language:r,slug:s,document:o};if(!s.includes("/"))return;const a=await z(async()=>e.skesis.getItemByPath({path:i},{throwOnError:!0}));return a&&{kind:"item",language:r,slug:s,itemPage:a}}const P=["link","ask","interact","cart","submit"],B=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),V=e=>"string"==typeof e&&e.trim().length>0,H=new Set(["http:","https:","mailto:","tel:"]),W=e=>{try{return H.has(new URL(e,"https://relative.invalid").protocol)}catch{return!1}};function G(e){const{id:t,value:n,payload:r,block:s}=e,i=void 0===n||"string"==typeof n||(e=>Array.isArray(e)&&e.every(e=>"string"==typeof e))(n),o=void 0===r||B(r);if(i&&o&&(void 0===s||"string"==typeof s)&&V(t))return{type:"interact",id:t,...void 0!==n&&{value:n},...void 0!==r&&{payload:r},...void 0!==s&&{block:s}}}function F(e){if(B(e))switch(e.type){case"link":return function(e){const{url:t,newTab:n}=e;return(void 0===n||"boolean"==typeof n)&&V(t)&&W(t)?{type:"link",url:t,...void 0!==n&&{newTab:n}}:void 0}(e);case"ask":return V(e.value)?{type:"ask",value:e.value}:void 0;case"interact":return G(e);case"cart":return V(e.productId)?{type:"cart",productId:e.productId}:void 0;case"submit":return V(e.form)?{type:"submit",form:e.form}:void 0;default:return}}function J(e){const t=e instanceof FormData?e:new FormData(e),n=[];for(const e of new Set(t.keys())){const r=t.getAll(e).filter(e=>"string"==typeof e),s=e.endsWith("[]");r.length>0&&n.push([s?e.slice(0,-2):e,s||r.length>1?r:r[0]])}return Object.fromEntries(n)}const Y="custom:deliverResult",Q=new Set(["done","pending","ambiguous","skipped"]),Z=e=>void 0===e||"string"==typeof e,X=e=>B(e)&&"string"==typeof e.message&&Z(e.field),ee=e=>B(e)&&"string"==typeof e.status&&Q.has(e.status)&&Z(e.ref);function te(e){const t=e.type===Y&&B(e.data)?e.data:void 0;if(void 0===t)return;const{status:n,submissionId:r,message:s,redirect:i,errors:o,results:a}=t;var c;return("accepted"===n||"refused"===n)&&V(r)&&Z(s)&&Z(i)&&(void 0===o||Array.isArray(o)&&o.every(X))&&(B(c=a)&&Object.values(c).every(ee))?{status:n,submissionId:r,results:a,...void 0!==s&&{message:s},...void 0!==i&&W(i)&&{redirect:i},...void 0!==o&&{errors:o}}:void 0}const ne="2026-10",re=15e3,se=2e4,ie="fragment CartFields on Cart {\n\tid checkoutUrl totalQuantity\n\tcost {subtotalAmount {amount currencyCode} totalAmount {amount currencyCode}}\n\tlines(first: 100) {nodes {\n\t\tid quantity\n\t\tmerchandise {... on ProductVariant {id title product {title handle} image {url altText} price {amount currencyCode} selectedOptions {name value}}}\n\t\tcost {totalAmount {amount currencyCode}}\n\t}}\n}",oe=(e,t,n)=>`mutation ${e}(${t}, $country: CountryCode) @inContext(country: $country) {${n} {cart {...CartFields} userErrors {code field message} warnings {code message target}}}\n${ie}`,ae=`query CartQuery($id: ID!, $country: CountryCode) @inContext(country: $country) {cart(id: $id) {...CartFields}}\n${ie}`,ce=oe("CartCreate","$input: CartInput!","cartCreate(input: $input)"),ue=oe("CartLinesAdd","$cartId: ID!, $lines: [CartLineInput!]!","cartLinesAdd(cartId: $cartId, lines: $lines)"),de=oe("CartLinesUpdate","$cartId: ID!, $lines: [CartLineUpdateInput!]!","cartLinesUpdate(cartId: $cartId, lines: $lines)"),le=oe("CartLinesRemove","$cartId: ID!, $lineIds: [ID!]!","cartLinesRemove(cartId: $cartId, lineIds: $lineIds)"),he="The store is busy. Try again in a moment.",ye="The store is not open to the cart: its storefront password may be on.",fe=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),pe=e=>"string"==typeof e&&""!==e,me=(e,t)=>({error:{code:e,message:t},warnings:[]});const ge=(e,t=[])=>({data:e,warnings:t}),ve=(e,t,n)=>({error:{code:e,message:t,...void 0!==n&&{status:n}},isRefusedAccess:!1}),be=e=>({error:{code:"cart_unavailable",message:"The store refused the cart request.",status:e},isRefusedAccess:!0}),ke=/^gid:\/\/shopify\/ProductVariant\/\d+$/v,we=e=>ke.test(e);const Re=(e,t)=>Number.isSafeInteger(e)&&e>=t,Te=e=>({...e,lines:e.lines?.nodes??[]});const Se=e=>e.lines.map(e=>({id:e.id,merchandiseId:e.merchandise.id,quantity:e.quantity})),Ee=e=>e.map(({merchandiseId:e,quantity:t})=>({merchandiseId:e,quantity:t}));function Ie(e,t){const n=Ee(e),r=n.find(e=>e.merchandiseId===t.merchandiseId);return r?r.quantity+=t.quantity:n.push(t),n}async function Ce(e){const{status:t}=e;if(0===t||"opaqueredirect"===e.type||t>=300&&t<400)return ve("cart_unavailable",ye,0===t?void 0:t);if(430===t||429===t)return ve("throttled",he,t);if(401===t||403===t)return be(t);if(!e.ok)return ve("http",`The store answered ${t}.`,t);let n;try{n=await e.json()}catch{return ve("cart_unavailable",ye,t)}return fe(n)&&fe(n.data)?{data:n.data}:function(e,t){const n=fe(e)&&Array.isArray(e.errors)?e.errors:[],r=new Set(n.map(e=>fe(e)&&fe(e.extensions)?e.extensions.code:void 0));if(r.has("THROTTLED"))return ve("throttled",he,t);if(r.has("ACCESS_DENIED")||r.has("UNAUTHORIZED")||r.has("FORBIDDEN"))return be(t);const s=n.find(e=>fe(e)&&pe(e.message));return ve("graphql",fe(s)&&pe(s.message)?s.message:"The store could not read the cart request.",t)}(n,t)}const Oe=e=>e instanceof Error?e.message:String(e);async function Ae(e){return new Promise(t=>{setTimeout(t,e)})}function xe(e){return"function"==typeof AbortSignal.timeout?AbortSignal.timeout(e):void 0}function $e(){try{return localStorage}catch{return}}function _e(e){const t=new Map;return{getItem(n){try{const t=e?.getItem(n);if("string"==typeof t)return t}catch{}return t.get(n)??null},setItem(n,r){try{if(void 0!==e)return e.setItem(n,r),void t.delete(n)}catch{}t.set(n,r)},removeItem(n){t.delete(n);try{e?.removeItem(n)}catch{}}}}function De(e,t={}){const{waitMs:n=se,ttlMs:r=re,retryMs:s=50,settleMs:i=30}=t;return async(t,o)=>{const a=`${t}:lease`,c=`${Date.now().toString(36)}.${Math.random().toString(36).slice(2)}`,u=()=>{const t=function(e){try{const t="string"==typeof e?JSON.parse(e):void 0;return fe(t)&&pe(t.owner)&&"number"==typeof t.expires?{owner:t.owner,expires:t.expires}:void 0}catch{return}}(e.getItem(a));return void 0!==t&&t.expires>Date.now()?t.owner:void 0},d=Date.now()+n;let l=!1;for(;!l;){if(void 0===u()){try{e.setItem(a,JSON.stringify({owner:c,expires:Date.now()+r}))}catch{return o()}if(await Ae(i),l=u()===c,l)continue}if(Date.now()>=d)throw new Error(`[thamyr] the ${t} lock was not granted within ${n} ms`);await Ae(s)}try{return await o()}finally{u()===c&&e.removeItem(a)}}}function qe(){return _e($e())}function Ne(e){const t=_e(e.storage??$e()),n=e.lock??function(){const e=globalThis.navigator?.locks;if("function"==typeof e?.request)return async(t,n)=>{const r=xe(se);return e.request(t,r?{signal:r}:{},async()=>n())}}()??De(t),r=e.fetch??(async(e,t)=>fetch(e,t)),s=e.navigate??(e=>{location.assign(e)});function i(e){const s=`callimacus:shopify-cart:${e.cartKey??e.storeDomain}`,i=`callimacus:shopify-cart-lock:${e.cartKey??e.storeDomain}`,o=void 0!==e.storefrontToken,a=()=>function(e){try{const t="string"==typeof e?JSON.parse(e):void 0;if(!fe(t)||!pe(t.id)||!t.id.startsWith("gid://shopify/Cart/"))return;const n=Array.isArray(t.lines)?t.lines:[];return{id:t.id,lines:n.filter(e=>fe(e)&&pe(e.id)&&pe(e.merchandiseId)&&"number"==typeof e.quantity)}}catch{return}}(t.getItem(s));function c(e){return t.setItem(s,JSON.stringify({id:e.id,lines:Se(e)})),e}function u(e){a()?.id===e&&t.removeItem(s)}async function d(t,n){const s={"Content-Type":"application/json",Accept:"application/json"};void 0!==e.storefrontToken&&(s["X-Shopify-Storefront-Access-Token"]=e.storefrontToken);try{const i=await r(`https://${e.storeDomain}/api/${ne}/graphql.json`,{method:"POST",headers:s,body:JSON.stringify({query:t,variables:{...n,country:e.country??null}}),redirect:"manual",signal:xe(1e4)});return await Ce(i)}catch(e){const t=e instanceof Error&&"TimeoutError"===e.name;return ve("network",t?"The store did not answer in time.":"Could not reach the store. Check your connection and try again.")}}async function l(e){return d(ae,{id:e})}async function h(e,t,n){const r=await d(t,n);if("error"in r)return o&&r.isRefusedAccess?{refusedAccess:r.error}:{error:r.error,warnings:[]};const s=r.data[e];if(!fe(s))return me("graphql","The store answered without the cart.");const i=Array.isArray(s.userErrors)?s.userErrors:[],a=Array.isArray(s.warnings)?s.warnings:[];if(!s.cart&&i.every(e=>e.field?.includes("cartId")??!1))return{isGone:!0};const u=s.cart?c(Te(s.cart)):void 0;return i.length>0?{...void 0!==u&&{data:u},error:{code:"refused",message:i.map(e=>e.message).join(" "),userErrors:i},warnings:a}:ge(u,a)}function y(e,t){return"isGone"in e?(u(t),me("no_cart","The cart is no longer there.")):"refusedAccess"in e?{error:e.refusedAccess,warnings:[]}:e}async function f(t,r,s){let o,d=!1;try{o=await n(i,async()=>{d=!0;const n=a();return void 0!==n&&n.id!==s?n:0===t.length?(void 0!==s&&u(s),ge(void 0)):async function(t){const n={lines:t,...void 0!==e.country&&{buyerIdentity:{countryCode:e.country}},...void 0!==e.sourceName&&{sourceName:e.sourceName}},r=await h("cartCreate",ce,{input:n});return"isGone"in r?me("graphql","The store created no cart."):"refusedAccess"in r?{error:r.refusedAccess,warnings:[]}:r}(t)})}catch(e){return d?me("cart_unavailable",Oe(e)):me("busy","The cart is being set up in another tab. Try again in a moment.")}if("warnings"in o)return o;if(r.length>0)return y(await h("cartLinesAdd",ue,{cartId:o.id,lines:r}),o.id);const f=await l(o.id);return"error"in f?{error:f.error,warnings:[]}:ge(f.data.cart?c(Te(f.data.cart)):void 0)}return{hasToken:o,read:a,keep:c,drop:u,query:l,change:async function(e,t,n){const r=await h(t.field,t.document,{cartId:e.id,...t.variables});return"isGone"in r&&void 0!==n.whenGone?f(n.whenGone,n.added??[],e.id):"refusedAccess"in r?f(n.whenRefused,n.added??[],e.id):y(r,e.id)},createOnce:f}}let o=Promise.resolve();async function a(t){const n=o.then(async()=>async function(t){let n;try{n=await e.settings()}catch(e){return me("cart_unavailable",Oe(e))}if(!n.cartEnabled)return me("cart_disabled","The cart is off on this site.");const{storeDomain:r}=n;if(void 0===r)return me("cart_unavailable","No Shopify store is set up for this site.");try{return await t(i({...n,storeDomain:r}))}catch(e){return me("cart_unavailable",Oe(e))}}(t));return o=n.catch(()=>{}),n}async function c(){return a(async e=>{const t=e.read();if(void 0===t)return ge(void 0);const n=await e.query(t.id);return"error"in n?n.isRefusedAccess&&e.hasToken?e.createOnce(Ee(t.lines),[],t.id):{error:n.error,warnings:[]}:n.data.cart?ge(e.keep(Te(n.data.cart))):(e.drop(t.id),ge(void 0))})}const u={getCart:c,async addItem(e,t=1){const n=function(e){if("string"==typeof e)return we(e)?e:/^\d+$/v.test(e)?`gid://shopify/ProductVariant/${e}`:void 0}(e);if(void 0===n)return me("invalid_input",`Not a Shopify product variant id: ${e}.`);if(!Re(t,1))return me("invalid_input",`Not a quantity to add: ${t}.`);const r={merchandiseId:n,quantity:t},s=await a(async e=>{const t=e.read();return void 0===t?e.createOnce([r],[r]):e.change(t,{field:"cartLinesAdd",document:ue,variables:{lines:[r]}},{whenGone:[r],whenRefused:Ie(t.lines,r),added:[r]})}),i=function(e,t){if(void 0!==e.error||void 0===e.data)return;const{lines:n}=e.data;for(const r of e.warnings){const e="MERCHANDISE_OUT_OF_STOCK"===r.code?n.find(e=>0===e.quantity&&e.merchandise.id===t):void 0;if(void 0!==e)return{line:e,warning:r}}}(s,n);if(void 0===i)return s;return{data:(await u.removeItem(i.line.id)).data??s.data,error:{code:"refused",message:i.warning.message},warnings:s.warnings}},removeItem:async e=>pe(e)?a(async t=>{const n=t.read();return void 0===n?me("no_cart","There is no cart yet."):t.change(n,{field:"cartLinesRemove",document:le,variables:{lineIds:[e]}},{whenRefused:Ee(n.lines.filter(t=>t.id!==e))})}):me("invalid_input","No cart line to remove."),updateQuantity:async(e,t)=>pe(e)&&Re(t,0)?a(async n=>{const r=n.read();if(void 0===r)return me("no_cart","There is no cart yet.");const s=r.lines.map(n=>n.id===e?{...n,quantity:t}:n).filter(e=>e.quantity>0);return n.change(r,{field:"cartLinesUpdate",document:de,variables:{lines:[{id:e,quantity:t}]}},{whenRefused:Ee(s)})}):me("invalid_input",`Not a cart line and quantity: ${e} × ${t}.`),async checkout(){const e=await c();if(void 0!==e.error)return{error:e.error,warnings:e.warnings};const t=e.data;if(void 0===t||0===t.totalQuantity)return me("no_cart","The cart is empty.");if(!function(e){try{return"https:"===new URL(e).protocol}catch{return!1}}(t.checkoutUrl))return me("cart_unavailable","The store answered without a checkout link.");try{s(t.checkoutUrl)}catch(e){return me("cart_unavailable",Oe(e))}return ge(t.checkoutUrl,e.warnings)}};return u}const Ue=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),je=e=>"string"==typeof e&&""!==e.trim()?e.trim():void 0;function Le(e){const t=e?.trim()??"";if(""!==t)try{const{host:e}=new URL(/^https?:\/\//iv.test(t)?t:`https://${t}`);return""===e?void 0:e}catch{return}}const Ke=e=>void 0!==e&&/^[a-z]{2}$/iv.test(e)?e.toUpperCase():void 0;const ze=(e,t)=>Le(e?.storeDomain)??t;function Me(e,t){const n=Le(e?.domain??t?.storeDomain),r=e?.storefrontToken??je(t?.storefrontToken),s=e?.sourceName??void 0,i=Ke(t?.country);return{cartEnabled:e?.cartEnabled??!0,...void 0!==n&&{storeDomain:n,cartKey:ze(t,n)},...void 0!==r&&{storefrontToken:r},...void 0!==s&&{sourceName:s},countries:e?.countries??{},...void 0!==i&&{country:i}}}async function Pe(e,t){try{const n="function"==typeof AbortSignal.timeout?AbortSignal.timeout(5e3):void 0,{data:r,response:s}=await e.get({url:"/shopify/storefront",...void 0!==n&&{signal:n}});return Me(200===s?.status?function(e){if(!Ue(e)||"boolean"!=typeof e.cartEnabled)return;const t=Ue(e.countries)?Object.fromEntries(Object.entries(e.countries).filter(e=>"string"==typeof e[1])):{};return{domain:je(e.domain)??null,storefrontToken:je(e.storefrontToken)??null,sourceName:je(e.sourceName)??null,countries:t,cartEnabled:e.cartEnabled}}(r):void 0,t)}catch{return Me(void 0,t)}}function Be(e,t){const{countries:n,country:r,...s}=e,i=function(e,t){if(void 0===t||""===t)return;const n=t.toLowerCase(),[r]=n.split(/[\-_]/v,1),s=Object.entries(e),i=s.find(([e])=>e.toLowerCase()===n)??s.find(([e])=>e.toLowerCase()===r);return Ke(i?.[1])}(n,t)??r;return{...s,...void 0!==i&&{country:i}}}const Ve=new Set;function He(e){Ve.has(e)||(Ve.add(e),l.warn(`${e}() is a browser-only intent API and does nothing on React Native. Use @callimacus/intent/native (initIntentNative) for intent tracking on native.`))}function We(e){He("setConsent")}function Ge(e){He("setGeo")}function Fe(e){He("setDebug")}function Je(e){He("setDebugPanel")}function Ye(e={}){He("initIntent")}function Qe(){He("getIntentSessionId")}function Ze(){He("ensureIntentSessionId")}function Xe(){He("clearIntentSessionId")}function et(e){He("setIntentSessionMaxAge")}const tt={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},nt=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function rt(e,t){t||(t=new Map);for(const n of e)"in"in n?n.key&&t.set(n.key,{in:n.in,map:n.map}):"key"in n?t.set(n.key,{map:n.map}):n.args&&rt(n.args,t);return t}function st(e,t){const n={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},r=rt(t);function s(e,t,r){let s=n[e];void 0===s&&(s=Object.create(null),n[e]=s),s[t]=r}let i;for(const[o,a]of e.entries())if(t[o]&&(i=t[o]),i)if("in"in i)if(i.key){const e=r.get(i.key),t=e.map||i.key;e.in&&s(e.in,t,a)}else n.body=a;else for(const[e,t]of Object.entries(a??{})){const o=r.get(e);if(o)if(o.in){const n=o.map||e;s(o.in,n,t)}else n[o.map]=t;else{const n=nt.find(([t])=>e.startsWith(t));if(n){const[r,i]=n;s(i,e.slice(r.length),t)}else if("allowExtra"in i&&i.allowExtra)for(const[n,r]of Object.entries(i.allowExtra))if(r){s(n,e,t);break}}}return function(e){for(const[t,n]of Object.entries(e))"body"!==t&&(!n||"object"!=typeof n||Array.isArray(n)||Object.keys(n).length||delete e[t])}(n),n}const it=({allowReserved:e,explode:t,name:n,style:r,value:s})=>{if(!t){const t=(e?s:s.map(e=>encodeURIComponent(e))).join((e=>{switch(e){case"form":default:return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20"}})(r));switch(r){case"label":return`.${t}`;case"matrix":return`;${n}=${t}`;case"simple":return t;default:return`${n}=${t}`}}const i=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(r),o=s.map(t=>"label"===r||"simple"===r?e?t:encodeURIComponent(t):ot({allowReserved:e,name:n,value:t})).join(i);return"label"===r||"matrix"===r?i+o:o},ot=({allowReserved:e,name:t,value:n})=>{if(null==n)return"";if("object"==typeof n)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?n:encodeURIComponent(n)}`},at=({allowReserved:e,explode:t,name:n,style:r,value:s,valueOnly:i})=>{if(s instanceof Date)return i?s.toISOString():`${n}=${s.toISOString()}`;if("deepObject"!==r&&!t){let t=[];Object.entries(s).forEach(([n,r])=>{t=[...t,n,e?r:encodeURIComponent(r)]});const i=t.join(",");switch(r){case"form":return`${n}=${i}`;case"label":return`.${i}`;case"matrix":return`;${n}=${i}`;default:return i}}const o=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(r),a=Object.entries(s).map(([t,s])=>ot({allowReserved:e,name:"deepObject"===r?`${n}[${t}]`:t,value:s})).join(o);return"label"===r||"matrix"===r?o+a:a},ct=/\{[^{}]+\}/g,ut=({baseUrl:e,path:t,query:n,querySerializer:r,url:s})=>{let i=(e??"")+(s.startsWith("/")?s:`/${s}`);t&&(i=(({path:e,url:t})=>{let n=t;const r=t.match(ct);if(r)for(const t of r){let r=!1,s=t.substring(1,t.length-1),i="simple";s.endsWith("*")&&(r=!0,s=s.substring(0,s.length-1)),s.startsWith(".")?(s=s.substring(1),i="label"):s.startsWith(";")&&(s=s.substring(1),i="matrix");const o=e[s];if(null==o)continue;if(Array.isArray(o)){n=n.replace(t,it({explode:r,name:s,style:i,value:o}));continue}if("object"==typeof o){n=n.replace(t,at({explode:r,name:s,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){n=n.replace(t,`;${ot({name:s,value:o})}`);continue}const a=encodeURIComponent("label"===i?`.${o}`:o);n=n.replace(t,a)}return n})({path:t,url:i}));let o=n?r(n):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(i+=`?${o}`),i};function dt(e){const t=void 0!==e.body;if(t&&e.bodySerializer){if("serializedBody"in e){return void 0!==e.serializedBody&&""!==e.serializedBody?e.serializedBody:null}return""!==e.body?e.body:null}if(t)return e.body}const lt=async(e,t)=>{const n="function"==typeof t?await t(e):t;if(n)return"bearer"===e.scheme?`Bearer ${n}`:"basic"===e.scheme?`Basic ${btoa(n)}`:n},ht=({parameters:e={},...t}={})=>n=>{const r=[];if(n&&"object"==typeof n)for(const s in n){const i=n[s];if(null==i)continue;const o=e[s]||t;if(Array.isArray(i)){const e=it({allowReserved:o.allowReserved,explode:!0,name:s,style:"form",value:i,...o.array});e&&r.push(e)}else if("object"==typeof i){const e=at({allowReserved:o.allowReserved,explode:!0,name:s,style:"deepObject",value:i,...o.object});e&&r.push(e)}else{const e=ot({allowReserved:o.allowReserved,name:s,value:i});e&&r.push(e)}}return r.join("&")},yt=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const ft=e=>ut({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:ht(e.querySerializer),url:e.url}),pt=(e,t)=>{const n={...e,...t};return n.baseUrl?.endsWith("/")&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=gt(e.headers,t.headers),n},mt=e=>{const t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},gt=(...e)=>{const t=new Headers;for(const n of e){if(!n)continue;const e=n instanceof Headers?mt(n):Object.entries(n);for(const[n,r]of e)if(null===r)t.delete(n);else if(Array.isArray(r))for(const e of r)t.append(n,e);else void 0!==r&&t.set(n,"object"==typeof r?JSON.stringify(r):r)}return t};class vt{fns=[];clear(){this.fns=[]}eject(e){const t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){const t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){return"number"==typeof e?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){const n=this.getInterceptorIndex(e);return!!this.fns[n]&&(this.fns[n]=t,e)}use(e){return this.fns.push(e),this.fns.length-1}}const bt=ht({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),kt={"Content-Type":"application/json"},wt=(e={})=>({...tt,headers:kt,parseAs:"auto",querySerializer:bt,...e}),Rt=(e={})=>{let t=pt(wt(),e);const n=()=>({...t}),r={error:new vt,request:new vt,response:new vt},s=async e=>{const n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:gt(t.headers,e.headers),serializedBody:void 0};n.security&&await async function(e){for(const t of e.security??[]){if(yt(e,t.name))continue;const n=await lt(t,e.auth);if(!n)continue;const r=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[r]=n;break;case"cookie":e.headers.append("Cookie",`${r}=${n}`);break;default:e.headers.set(r,n)}}}(n),n.requestValidator&&await n.requestValidator(n),void 0!==n.body&&n.bodySerializer&&(n.serializedBody=n.bodySerializer(n.body)),void 0!==n.body&&""!==n.serializedBody||n.headers.delete("Content-Type");return{opts:n,url:ft(n)}},i=async e=>{const n=e.throwOnError??t.throwOnError,i=e.responseStyle??t.responseStyle;let o,a;try{const{opts:t,url:n}=await s(e),i={redirect:"follow",...t,body:dt(t)};o=new Request(n,i);for(const e of r.request.fns)e&&(o=await e(o,t));const c=t.fetch;a=await c(o);for(const e of r.response.fns)e&&(a=await e(a,o,t));const u={request:o,response:a};if(a.ok){const e=("auto"===t.parseAs?(e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();return t?t.startsWith("application/json")||t.endsWith("+json")?"json":"multipart/form-data"===t?"formData":["application/","audio/","image/","video/"].some(e=>t.startsWith(e))?"blob":t.startsWith("text/")?"text":void 0:void 0})(a.headers.get("Content-Type")):t.parseAs)??"json";if(204===a.status||"0"===a.headers.get("Content-Length")){let n;switch(e){case"arrayBuffer":case"blob":case"text":n=await a[e]();break;case"formData":n=new FormData;break;case"stream":n=a.body;break;default:n={}}return"data"===t.responseStyle?n:{data:n,...u}}let n;switch(e){case"arrayBuffer":case"blob":case"formData":case"text":n=await a[e]();break;case"json":{const e=await a.text();n=e?JSON.parse(e):{};break}case"stream":return"data"===t.responseStyle?a.body:{data:a.body,...u}}return"json"===e&&(t.responseValidator&&await t.responseValidator(n),t.responseTransformer&&(n=await t.responseTransformer(n))),"data"===t.responseStyle?n:{data:n,...u}}const d=await a.text();let l;try{l=JSON.parse(d)}catch{}throw l??d}catch(t){let s=t;for(const t of r.error.fns)t&&(s=await t(s,a,o,e));if(s=s||{},n)throw s;return"data"===i?void 0:{error:s,request:o,response:a}}},o=e=>t=>i({...t,method:e}),a=e=>async t=>{const{opts:n,url:i}=await s(t);return function({onRequest:e,onSseError:t,onSseEvent:n,responseTransformer:r,responseValidator:s,sseDefaultRetryDelay:i,sseMaxRetryAttempts:o,sseMaxRetryDelay:a,sseSleepFn:c,url:u,...d}){let l;const h=c??(e=>new Promise(t=>setTimeout(t,e))),y=async function*(){let c=i??3e3,y=0;const f=d.signal??(new AbortController).signal;for(;!f.aborted;){y++;const i=d.headers instanceof Headers?d.headers:new Headers(d.headers);void 0!==l&&i.set("Last-Event-ID",l);try{const t={redirect:"follow",...d,body:d.serializedBody,headers:i,signal:f};let o=new Request(u,t);e&&(o=await e(u,t));const a=d.fetch??globalThis.fetch,h=await a(o);if(!h.ok)throw new Error(`SSE failed: ${h.status} ${h.statusText}`);if(!h.body)throw new Error("No body in SSE response");const y=h.body.pipeThrough(new TextDecoderStream).getReader();let p="";const m=()=>{try{y.cancel()}catch{}};f.addEventListener("abort",m);try{for(;;){const{done:e,value:t}=await y.read();if(e)break;p+=t,p=p.replace(/\r\n?/g,"\n");const i=p.split("\n\n");p=i.pop()??"";for(const e of i){const t=e.split("\n"),i=[];let o,a;for(const e of t)if(e.startsWith("data:"))i.push(e.replace(/^data:\s*/,""));else if(e.startsWith("event:"))o=e.replace(/^event:\s*/,"");else if(e.startsWith("id:"))l=e.replace(/^id:\s*/,"");else if(e.startsWith("retry:")){const t=Number.parseInt(e.replace(/^retry:\s*/,""),10);Number.isNaN(t)||(c=t)}let u=!1;if(i.length){const e=i.join("\n");try{a=JSON.parse(e),u=!0}catch{a=e}}u&&(s&&await s(a),r&&(a=await r(a))),n?.({data:a,event:o,id:l,retry:c}),i.length&&(yield a)}}}finally{f.removeEventListener("abort",m),y.releaseLock()}break}catch(e){if(t?.(e),void 0!==o&&y>=o)break;const n=Math.min(c*2**(y-1),a??3e4);await h(n)}}}();return{stream:y}}({...n,body:n.body,method:e,onRequest:async(e,t)=>{let s=new Request(e,t);for(const e of r.request.fns)e&&(s=await e(s,n));return s},serializedBody:dt(n),url:i})};return{buildUrl:e=>ft({...t,...e}),connect:o("CONNECT"),delete:o("DELETE"),get:o("GET"),getConfig:n,head:o("HEAD"),interceptors:r,options:o("OPTIONS"),patch:o("PATCH"),post:o("POST"),put:o("PUT"),request:i,setConfig:e=>(t=pt(t,e),n()),sse:{connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),head:a("HEAD"),options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),trace:a("TRACE")},trace:o("TRACE")}};class Tt{client;constructor(e){this.client=e.client}}class St{defaultKey="default";instances=new Map;get(e){const t=this.instances.get(e??this.defaultKey);if(!t)throw new Error('No SDK client found. Create one with "new CallimacusApi()" to fix this error.');return t}set(e,t){this.instances.set(t??this.defaultKey,e)}}class Et extends Tt{getPage(e,t){const n=st([e],[{args:[{in:"path",key:"language"},{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/page/{language}/{id}",...t,...n})}listTopics(e,t){const n=st([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}",...t,...n})}getTopicContents(e,t){const n=st([e],[{args:[{in:"path",key:"language"},{in:"path",key:"idOrSlug"},{in:"query",key:"offset"},{in:"query",key:"limit"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}/{idOrSlug}",...t,...n})}getDocumentBySlug(e,t){const n=st([e],[{args:[{in:"path",key:"language"},{in:"path",key:"slug"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/{language}/{slug}",...t,...n})}getDocumentByGroup(e,t){const n=st([e],[{args:[{in:"path",key:"language"},{in:"path",key:"groupId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-group/{language}/{groupId}",...t,...n})}getDocumentByPath(e,t){const n=st([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-path",...t,...n})}listDocuments(e,t){const n=st([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/documents/{language}",...t,...n})}}class It extends Tt{getShared(e,t){const n=st([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...n})}share(e,t){const n=st([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...n})}}class Ct extends Tt{getSimilar(e,t){const n=st([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"topK"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/similar",...t,...n})}getRecommendations(e,t){const n=st([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/recommendations",...t,...n})}}class Ot extends Tt{getLast(e,t){const n=st([e],[{args:[{in:"query",key:"storyId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/whisper",...t,...n})}}class At extends Tt{trackEvent(e,t){const n=st([e],[{args:[{in:"body",key:"storyId"},{in:"body",key:"eventName"},{in:"body",key:"content"},{in:"body",key:"payload"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/track-event",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}}class xt extends Tt{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const n=st([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/add",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}removeItemFromCart(e,t){const n=st([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/remove",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}updateProductQuantity(e,t){const n=st([e],[{args:[{in:"body",key:"productId"},{in:"body",key:"quantity"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/update",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}}class $t extends Tt{getStorefrontSettings(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/shopify/storefront",...e})}}class _t extends Tt{similar(e,t){const n=st([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"topK"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/similar",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}related(e,t){const n=st([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/related",...t,...n,headers:{"Content-Type":"application/json",...t?.headers,...n.headers}})}getItemByPath(e,t){const n=st([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/item/by-path",...t,...n})}}class Dt extends Tt{static __registry=new St;constructor(e){super(e),Dt.__registry.set(this,e.key)}_content;get content(){return this._content??=new Et({client:this.client})}_stories;get stories(){return this._stories??=new It({client:this.client})}_products;get products(){return this._products??=new Ct({client:this.client})}_whisper;get whisper(){return this._whisper??=new Ot({client:this.client})}_analytics;get analytics(){return this._analytics??=new At({client:this.client})}_cart;get cart(){return this._cart??=new xt({client:this.client})}_shopify;get shopify(){return this._shopify??=new $t({client:this.client})}_skesis;get skesis(){return this._skesis??=new _t({client:this.client})}}class qt extends Error{status;body;response;request;constructor(e,t,n){const r=t?.status,s=n?`${n.method} ${n.url}`:"request";let i=`[thamyr] ${s} failed before a response arrived`;t&&(i=t.ok?`[thamyr] ${s} → ${t.status}, but the response could not be processed`:`[thamyr] ${s} → ${t.status}`),super(i,e instanceof Error?{cause:e}:void 0),this.name="ThamyrHttpError",this.status=r,this.body=e,this.response=t,this.request=n}}function Nt(e){const t=Rt(wt({baseUrl:new URL("api/v3",e.endpoint).href,headers:{Authorization:`Bearer ${e.accessToken}`,"x-sl-access-token":e.accessToken},credentials:e.withCredentials?"include":"same-origin"}));return t.interceptors.error.use((e,n,r,s)=>{if(!(s.throwOnError??t.getConfig().throwOnError??!1)||!0===s.signal?.aborted)return e;return new qt(""===e?{}:e??{},n,r)}),t}export{P as ACTION_TYPES,$ as ADD_TO_CART_RESULT_BLOCK,Dt as CallimacusApi,p as CallimacusEvent,S as CallimacusService,o as ChapterStatus,r as ClientEvents,Y as DELIVER_RESULT_BLOCK,i as GalleryMode,I as LANDING_VALUE_MAX_LENGTH,w as MAX_HANDSHAKE_RETRIES,s as SLInputEventType,ne as STOREFRONT_API_VERSION,n as ServerEvents,qt as ThamyrHttpError,t as ThamyrResponseType,f as UserInteractionType,F as actionOf,N as addToCartResultOf,L as applyBlockPatch,x as blockKeyOf,E as callimacusService,Be as cartSettingsFor,T as classifyConnectError,Xe as clearIntentSessionId,Nt as createContractClient,qe as createPageStorage,Ne as createShopifyCart,te as deliverResultOf,Ze as ensureIntentSessionId,g as extractTtsAudio,J as fieldsOf,Qe as getIntentSessionId,Ye as initIntent,O as interactionRound,a as isCustomBlock,u as isMasterProduct,c as isSetProduct,we as isVariantGid,C as landingRound,l as logger,Me as mergeShopifySettings,k as parseConnectRejection,K as parseMapPath,y as randomUuid,Pe as readShopifySettings,A as receptorsOf,M as resolveMapPage,We as setConsent,Fe as setDebug,Je as setDebugPanel,Ge as setGeo,et as setIntentSessionMaxAge,R as shouldRetryHandshake,h as transformImageUrl};
|
|
9
9
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","sources":["../../../src/contract/index.ts","../../../src/utils/logger.ts","../../../src/utils/image-transform.ts","../../../src/utils/uuid.ts","../../../src/services/callimacus/types/interactions.ts","../../../src/services/callimacus/types/responses.ts","../../../src/services/callimacus/types/tts.ts","../../../src/services/callimacus/ui-observer.ts","../../../src/services/callimacus/connect-rejection.ts","../../../src/services/callimacus/service.ts","../../../src/services/callimacus/rounds.ts","../../../src/services/callimacus/map.ts","../../../src/services/callimacus/actions.ts","../../../src/intent-native.ts","../../../src/contract/generated/core/bodySerializer.gen.ts","../../../src/contract/generated/core/params.gen.ts","../../../src/contract/generated/core/pathSerializer.gen.ts","../../../src/contract/generated/core/utils.gen.ts","../../../src/contract/generated/core/auth.gen.ts","../../../src/contract/generated/client/utils.gen.ts","../../../src/contract/generated/client/client.gen.ts","../../../src/contract/generated/core/serverSentEvents.gen.ts","../../../src/contract/generated/sdk.gen.ts","../../../src/contract/http.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ThamyrResponseType","ERROR","CHAPTER_EVENT","CHAPTER_DELETED","STORY_RESET","STORY_CREATED","STORY_SHARED","BLOCK_PATCH","ServerEvents","SYSTEM_MESSAGE","SERVER_STATUS","SERVER_RESPONSE","ClientEvents","CLIENT_READY","USER_INTERACTION","SLInputEventType","question","content","topic","tag","image","video","gallery","relatedQuestion","page","customInteraction","customPage","GalleryMode","masonry","carousel","ChapterStatus","understandingQuery","craftingAnswer","curatingContent","done","isCustomBlock","block","type","startsWith","isSetProduct","product","set","isMasterProduct","master","LOG_LEVELS","debug","info","warn","error","silent","logger","config","enabled","level","prefix","args","this","log","method","output","undefined","console","configure","getConfig","transformImageUrl","cdnUrl","edits","url","URL","key","decodeURIComponent","pathname","slice","request","TextEncoder","encode","JSON","stringify","bucket","toBase64","origin","encodeURIComponent","randomUuid","cryptoObject","crypto","randomUUID","bytes","Uint8Array","getRandomValues","index","Math","floor","random","hex","map","byte","toString","padStart","join","UserInteractionType","CallimacusEvent","isTtsAudio","value","v","audioUrl","mimeType","extractTtsAudio","data","Object","values","DEFAULT_OBSERVER_CONFIG","productSelector","blockSelector","maxTrackedElements","minVisibilityRatio","AutonomousUiObserver","elements","Map","elementRefs","elementKeys","WeakMap","blocks","blockRefs","blockKeys","started","constructor","min","max","rescanUi","canUseDom","nodes","blockNodes","document","querySelectorAll","now","Date","element","bounds","normalizeRect","getBoundingClientRect","visibilityRatio","calculateVisibilityRatio","syncTrackedElement","isVisible","observedAt","syncTrackedBlock","pruneTrackedElements","pruneTrackedBlocks","size","toRemove","sort","left","right","byVisibility","Number","isNaN","id","delete","updates","resolveElementId","blockId","resolveBlockId","trackingKey","createTrackingKey","previousTrackingKey","get","resolveTrackedBlockId","dataset","productId","productid","sku","find","candidate","tagName","blockElement","closest","HTMLElement","blockid","rect","x","y","width","height","top","bottom","visibleArea","window","innerWidth","innerHeight","totalArea","viewportArea","reference","globalThis","start","stop","clear","getSnapshot","visibleEntries","visibleBlockIds","domElement","isConnected","push","limitedVisibleEntries","timestamp","viewport","blockIds","Set","flatMap","entry","parseConnectRejection","code","reason","MAX_HANDSHAKE_RETRIES","shouldRetryHandshake","attemptsSoFar","classifyConnectError","isActive","CallimacusService","socket","serverResponseListeners","connectionStatusListeners","errorListeners","uiObserver","uiObserverConfig","handshakeRetryAttempts","handshakeRetryTimer","setupEventListeners","on","clearHandshakeRetry","updateConnectionStatus","emit","rejection","active","message","notifyRejection","scheduleHandshakeRetry","notifyErrorListeners","io","attempt","response","notifyServerResponseListeners","forEach","listener","delaySeconds","setTimeout","connect","clearTimeout","listenerError","getLocation","navigator","geolocation","getCurrentPosition","Promise","resolve","position","enrichPayloadWithUiContext","payload","ensureUiObserver","snapshot","context","uiSnapshot","socketEndpoint","endpoint","u","path","headers","auth","disconnect","referrer","location","href","finalAuth","transports","tryAllTransports","extraHeaders","configureUiObserver","shouldEnable","sendUserInteraction","SUGGEST","BACK_FROM_ROUND","chapterId","interaction","storedInteraction","suggest","options","connected","suggestions","list","Array","isArray","filter","suggestionsOf","timeout","timeoutMs","emitWithAck","gatherClientInfo","nav","screen","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localTime","toLocaleString","screenResolution","onServerResponse","callback","add","onConnectionStatus","onError","callimacusService","LANDING_VALUE_MAX_LENGTH","landingRound","length","RangeError","inputEvent","interactionRound","submissionId","round","interactionId","nodeKey","receptorsOf","chapter","receptors","intent","blockKeyOf","ADD_TO_CART_RESULT_BLOCK","isRecord","isText","isSize","variantId","orderable","addToCartResultOf","addToCart","result","status","productName","productSku","availableSizes","every","recordOrEmpty","mergedAt","node","patch","head","rest","hasOwn","next","docId","inputs","textRuns","mergedAnimation","applyBlockPatch","findIndex","contentId","split","with","parseMapPath","groups","exec","slug","async","unlessNotFound","read","resolveMapPage","api","parsed","entries","listDocuments","throwOnError","kind","getDocumentByPath","includes","itemPage","skesis","getItemByPath","ACTION_TYPES","trim","SAFE_PROTOCOLS","isSafeUrl","has","protocol","interactOf","fields","isValueOk","item","isStringList","isPayloadOk","actionOf","newTab","linkOf","form","fieldsOf","FormData","keys","getAll","isList","endsWith","fromEntries","DELIVER_RESULT_BLOCK","DESTINATION_STATUSES","isOptionalText","isFieldError","field","isDestinationResult","ref","deliverResultOf","redirect","errors","results","warned","unavailable","name","setConsent","_isGranted","setGeo","_isEnabled","setDebug","setDebugPanel","initIntent","_options","getIntentSessionId","ensureIntentSessionId","clearIntentSessionId","setIntentSessionMaxAge","_seconds","jsonBodySerializer","bodySerializer","body","_key","extraPrefixes","$body_","$headers_","$path_","$query_","buildKeyMap","in","buildClientParams","params","create","query","writeSlot","slot","record","arg","extra","allowExtra","allowed","stripEmptySlots","serializeArrayParam","allowReserved","explode","style","joinedValues","separatorArrayNoExplode","separator","separatorArrayExplode","serializePrimitiveParam","Error","serializeObjectParam","valueOnly","toISOString","separatorObjectExplode","PATH_PARAM_RE","getUrl","baseUrl","querySerializer","_url","matches","match","substring","replace","replaceValue","defaultPathSerializer","search","getValidRequestBody","hasBody","serializedBody","getAuthToken","token","scheme","btoa","createQuerySerializer","parameters","queryParams","serializedArray","array","serializedObject","object","serializedPrimitive","checkForExistence","buildUrl","mergeConfigs","a","b","mergeHeaders","headersEntries","mergedHeaders","Headers","header","iterator","append","Interceptors","fns","eject","getInterceptorIndex","exists","Boolean","indexOf","update","fn","use","defaultQuerySerializer","defaultHeaders","createConfig","override","parseAs","createClient","_config","interceptors","beforeRequest","opts","fetch","security","setAuthParams","requestValidator","responseStyle","requestInit","Request","_fetch","ok","contentType","cleanContent","some","getParseAs","emptyData","text","parse","responseValidator","responseTransformer","textError","jsonError","finalError","makeMethodFn","makeSseFn","onRequest","onSseError","onSseEvent","sseDefaultRetryDelay","sseMaxRetryAttempts","sseMaxRetryDelay","sseSleepFn","lastEventId","sleep","ms","stream","retryDelay","signal","AbortController","aborted","statusText","reader","pipeThrough","TextDecoderStream","getReader","buffer","abortHandler","cancel","addEventListener","chunks","pop","chunk","lines","dataLines","eventName","line","parseInt","parsedJson","rawData","event","retry","removeEventListener","releaseLock","backoff","createStream","createSseClient","init","post","put","setConfig","sse","trace","HeyApiClient","client","HeyApiRegistry","defaultKey","instances","instance","Content","getPage","listTopics","getTopicContents","getDocumentBySlug","getDocumentByGroup","Stories","getShared","share","Products","getSimilar","getRecommendations","Whisper","getLast","Analytics","trackEvent","Cart","getCart","addItemToCart","removeItemFromCart","updateProductQuantity","Skesis","similar","related","CallimacusApi","static","super","__registry","_content","_stories","stories","_products","products","_whisper","whisper","_analytics","analytics","_cart","cart","_skesis","ThamyrHttpError","target","cause","createContractClient","Authorization","accessToken","credentials","withCredentials"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.native.js","sources":["../../../src/contract/index.ts","../../../src/utils/logger.ts","../../../src/utils/image-transform.ts","../../../src/utils/uuid.ts","../../../src/services/callimacus/types/interactions.ts","../../../src/services/callimacus/types/responses.ts","../../../src/services/callimacus/types/tts.ts","../../../src/services/callimacus/ui-observer.ts","../../../src/services/callimacus/connect-rejection.ts","../../../src/services/callimacus/service.ts","../../../src/services/callimacus/rounds.ts","../../../src/services/callimacus/map.ts","../../../src/services/callimacus/actions.ts","../../../src/services/shopify/cart.ts","../../../src/services/shopify/settings.ts","../../../src/intent-native.ts","../../../src/contract/generated/core/bodySerializer.gen.ts","../../../src/contract/generated/core/params.gen.ts","../../../src/contract/generated/core/pathSerializer.gen.ts","../../../src/contract/generated/core/utils.gen.ts","../../../src/contract/generated/core/auth.gen.ts","../../../src/contract/generated/client/utils.gen.ts","../../../src/contract/generated/client/client.gen.ts","../../../src/contract/generated/core/serverSentEvents.gen.ts","../../../src/contract/generated/sdk.gen.ts","../../../src/contract/http.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ThamyrResponseType","ERROR","CHAPTER_EVENT","CHAPTER_DELETED","STORY_RESET","STORY_CREATED","STORY_SHARED","BLOCK_PATCH","CART_COMMAND","ServerEvents","SYSTEM_MESSAGE","SERVER_STATUS","SERVER_RESPONSE","ClientEvents","CLIENT_READY","USER_INTERACTION","SLInputEventType","question","content","topic","tag","image","video","gallery","relatedQuestion","page","customInteraction","customPage","GalleryMode","masonry","carousel","ChapterStatus","understandingQuery","craftingAnswer","curatingContent","done","isCustomBlock","block","type","startsWith","isSetProduct","product","set","isMasterProduct","master","LOG_LEVELS","debug","info","warn","error","silent","logger","config","enabled","level","prefix","args","this","log","method","output","undefined","console","configure","getConfig","transformImageUrl","cdnUrl","edits","url","URL","key","decodeURIComponent","pathname","slice","request","TextEncoder","encode","JSON","stringify","bucket","toBase64","origin","encodeURIComponent","randomUuid","cryptoObject","crypto","randomUUID","bytes","Uint8Array","getRandomValues","index","Math","floor","random","hex","map","byte","toString","padStart","join","UserInteractionType","CallimacusEvent","isTtsAudio","value","v","audioUrl","mimeType","extractTtsAudio","data","Object","values","DEFAULT_OBSERVER_CONFIG","productSelector","blockSelector","maxTrackedElements","minVisibilityRatio","AutonomousUiObserver","elements","Map","elementRefs","elementKeys","WeakMap","blocks","blockRefs","blockKeys","started","constructor","min","max","rescanUi","canUseDom","nodes","blockNodes","document","querySelectorAll","now","Date","element","bounds","normalizeRect","getBoundingClientRect","visibilityRatio","calculateVisibilityRatio","syncTrackedElement","isVisible","observedAt","syncTrackedBlock","pruneTrackedElements","pruneTrackedBlocks","size","toRemove","sort","left","right","byVisibility","Number","isNaN","id","delete","updates","resolveElementId","blockId","resolveBlockId","trackingKey","createTrackingKey","previousTrackingKey","get","resolveTrackedBlockId","dataset","productId","productid","sku","find","candidate","tagName","blockElement","closest","HTMLElement","blockid","rect","x","y","width","height","top","bottom","visibleArea","window","innerWidth","innerHeight","totalArea","viewportArea","reference","globalThis","start","stop","clear","getSnapshot","visibleEntries","visibleBlockIds","domElement","isConnected","push","limitedVisibleEntries","timestamp","viewport","blockIds","Set","flatMap","entry","parseConnectRejection","code","reason","MAX_HANDSHAKE_RETRIES","shouldRetryHandshake","attemptsSoFar","classifyConnectError","isActive","CallimacusService","socket","serverResponseListeners","connectionStatusListeners","errorListeners","uiObserver","uiObserverConfig","handshakeRetryAttempts","handshakeRetryTimer","setupEventListeners","on","clearHandshakeRetry","updateConnectionStatus","emit","rejection","active","message","notifyRejection","scheduleHandshakeRetry","notifyErrorListeners","io","attempt","response","notifyServerResponseListeners","forEach","listener","delaySeconds","setTimeout","connect","clearTimeout","listenerError","getLocation","navigator","geolocation","getCurrentPosition","Promise","resolve","position","enrichPayloadWithUiContext","payload","ensureUiObserver","snapshot","context","uiSnapshot","socketEndpoint","endpoint","u","path","headers","auth","disconnect","referrer","location","href","finalAuth","transports","tryAllTransports","extraHeaders","configureUiObserver","shouldEnable","sendUserInteraction","SUGGEST","BACK_FROM_ROUND","chapterId","interaction","storedInteraction","suggest","options","connected","suggestions","list","Array","isArray","filter","suggestionsOf","timeout","timeoutMs","emitWithAck","gatherClientInfo","nav","screen","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localTime","toLocaleString","screenResolution","onServerResponse","callback","add","onConnectionStatus","onError","callimacusService","LANDING_VALUE_MAX_LENGTH","landingRound","length","RangeError","inputEvent","interactionRound","submissionId","round","interactionId","nodeKey","receptorsOf","chapter","receptors","intent","blockKeyOf","ADD_TO_CART_RESULT_BLOCK","isRecord","isText","isSize","variantId","orderable","addToCartResultOf","addToCart","result","status","productName","productSku","availableSizes","every","recordOrEmpty","mergedAt","node","patch","head","rest","hasOwn","next","docId","inputs","textRuns","mergedAnimation","applyBlockPatch","findIndex","contentId","split","with","parseMapPath","groups","exec","slug","async","unlessNotFound","read","resolveMapPage","api","parsed","entries","listDocuments","throwOnError","kind","getDocumentByPath","includes","itemPage","skesis","getItemByPath","ACTION_TYPES","trim","SAFE_PROTOCOLS","isSafeUrl","has","protocol","interactOf","fields","isValueOk","item","isStringList","isPayloadOk","actionOf","newTab","linkOf","form","fieldsOf","FormData","keys","getAll","isList","endsWith","fromEntries","DELIVER_RESULT_BLOCK","DESTINATION_STATUSES","isOptionalText","isFieldError","field","isDestinationResult","ref","deliverResultOf","redirect","errors","results","STOREFRONT_API_VERSION","LEASE_TTL_MS","LOCK_WAIT_MS","CART_FIELDS","mutation","name","parameters","call","CART_QUERY","CART_CREATE","LINES_ADD","LINES_UPDATE","LINES_REMOVE","BUSY_MESSAGE","PASSWORD_MESSAGE","failed","warnings","problem","isRefusedAccess","refusal","VARIANT_GID","isVariantGid","test","isQuantity","quantity","least","isSafeInteger","cartOf","raw","lines","linesOf","cart","line","merchandiseId","merchandise","inputsOf","withLine","same","input","answerOf","ok","body","json","codes","extensions","first","errorsOf","errorMessage","Error","String","sleep","ms","timeoutSignal","AbortSignal","browserStorage","localStorage","pageStorage","storage","memory","getItem","setItem","removeItem","leaseLock","timing","waitMs","ttlMs","retryMs","settleMs","task","owner","holder","lease","parse","expires","storedLease","deadline","isHeld","createPageStorage","createShopifyCart","lock","locks","signal","webLocks","send","fetch","init","navigate","assign","session","settings","cartKey","storeDomain","lockName","hasToken","storefrontToken","storedOf","keep","drop","goneId","variables","Accept","query","country","isTimeout","mutate","answer","refusedAccess","userErrors","isGone","settled","outcome","cartId","createOnce","linesToCreate","linesToAdd","replacing","isGranted","current","buyerIdentity","countryCode","sourceName","create","change","stored","recovery","whenGone","added","whenRefused","queue","run","work","turn","then","cartEnabled","runNow","catch","getCart","client","addItem","variantGidOf","soldOut","warning","soldOutLine","lineId","lineIds","checkout","totalQuantity","isHttps","checkoutUrl","textOf","hostOf","domain","trimmed","host","toUpperCase","cartKeyOf","mergeShopifySettings","storefront","countries","readShopifySettings","storefrontOf","cartSettingsFor","locale","buyerCountry","wanted","toLowerCase","match","countryFor","warned","unavailable","setConsent","_isGranted","setGeo","_isEnabled","setDebug","setDebugPanel","initIntent","_options","getIntentSessionId","ensureIntentSessionId","clearIntentSessionId","setIntentSessionMaxAge","_seconds","jsonBodySerializer","bodySerializer","_key","extraPrefixes","$body_","$headers_","$path_","$query_","buildKeyMap","in","buildClientParams","params","writeSlot","slot","record","arg","extra","allowExtra","allowed","stripEmptySlots","serializeArrayParam","allowReserved","explode","style","joinedValues","separatorArrayNoExplode","separator","separatorArrayExplode","serializePrimitiveParam","serializeObjectParam","valueOnly","toISOString","separatorObjectExplode","PATH_PARAM_RE","getUrl","baseUrl","querySerializer","_url","matches","substring","replace","replaceValue","defaultPathSerializer","search","getValidRequestBody","hasBody","serializedBody","getAuthToken","token","scheme","btoa","createQuerySerializer","queryParams","serializedArray","array","serializedObject","object","serializedPrimitive","checkForExistence","buildUrl","mergeConfigs","a","b","mergeHeaders","headersEntries","mergedHeaders","Headers","header","iterator","append","Interceptors","fns","eject","getInterceptorIndex","exists","Boolean","indexOf","update","fn","use","defaultQuerySerializer","defaultHeaders","createConfig","override","parseAs","createClient","_config","interceptors","beforeRequest","opts","security","setAuthParams","requestValidator","responseStyle","requestInit","Request","_fetch","contentType","cleanContent","some","getParseAs","emptyData","text","responseValidator","responseTransformer","textError","jsonError","finalError","makeMethodFn","makeSseFn","onRequest","onSseError","onSseEvent","sseDefaultRetryDelay","sseMaxRetryAttempts","sseMaxRetryDelay","sseSleepFn","lastEventId","stream","retryDelay","AbortController","aborted","statusText","reader","pipeThrough","TextDecoderStream","getReader","buffer","abortHandler","cancel","addEventListener","chunks","pop","chunk","dataLines","eventName","parseInt","parsedJson","rawData","event","retry","removeEventListener","releaseLock","backoff","createStream","createSseClient","post","put","setConfig","sse","trace","HeyApiClient","HeyApiRegistry","defaultKey","instances","instance","Content","getPage","listTopics","getTopicContents","getDocumentBySlug","getDocumentByGroup","Stories","getShared","share","Products","getSimilar","getRecommendations","Whisper","getLast","Analytics","trackEvent","Cart","addItemToCart","removeItemFromCart","updateProductQuantity","Shopify","getStorefrontSettings","Skesis","similar","related","CallimacusApi","static","super","__registry","_content","_stories","stories","_products","products","_whisper","whisper","_analytics","analytics","_cart","_shopify","shopify","_skesis","ThamyrHttpError","target","cause","createContractClient","Authorization","accessToken","credentials","withCredentials"],"mappings":"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"}
|