@callimacus/thamyr-core 4.11.1 → 4.13.0
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 +338 -2
- package/dist/types/index.native.d.ts +338 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.13.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.12.0...thamyr-core-v4.13.0) (2026-10-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **shopify:** thamyr-shopify, the Callimacus storefront as a Shopify app embed, and a Shopify cart in the SDK ([#821](https://github.com/callimacus/thamyr-sdk/issues/821)) ([2a9876b](https://github.com/callimacus/thamyr-sdk/commit/2a9876b7cafa27cc9e1540765335039d7e9ed645))
|
|
12
|
+
|
|
13
|
+
## [4.12.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.11.1...thamyr-core-v4.12.0) (2026-10-27)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Miscellaneous Chores
|
|
17
|
+
|
|
18
|
+
* **thamyr-core:** Synchronize thamyr versions
|
|
19
|
+
|
|
6
20
|
## [4.11.1](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.11.0...thamyr-core-v4.11.1) (2026-10-27)
|
|
7
21
|
|
|
8
22
|
|
package/dist/esm/index.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* See LICENSE.md for the full terms.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
export*from"@callimacus/intent";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"},s={ERROR:"error",SYSTEM_MESSAGE:"system-message",SERVER_STATUS:"server-status",SERVER_RESPONSE:"server-response"},n={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:s}=this.config,n=void 0===s||""===s?t:[s,...t];console[e](...n)}configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};function h(e,t){const s=new URL(e),n=decodeURIComponent(s.pathname.slice(1)),r=(new TextEncoder).encode(JSON.stringify({bucket:"storage.callimacus.ai",key:n,edits:t})).toBase64();return`${s.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 s=[...t].map(e=>e.toString(16).padStart(2,"0"));return[s.slice(0,4).join(""),s.slice(4,6).join(""),s.slice(6,8).join(""),s.slice(8,10).join(""),s.slice(10,16).join("")].join("-")}var p,f;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"}(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 s=Date.now();for(const t of e){const e=this.normalizeRect(t.getBoundingClientRect()),n=this.calculateVisibilityRatio(e);this.syncTrackedElement(t,{bounds:e,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}for(const e of t){const t=this.normalizeRect(e.getBoundingClientRect()),n=this.calculateVisibilityRatio(t);this.syncTrackedBlock(e,{bounds:t,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}this.pruneTrackedElements(),this.pruneTrackedBlocks()}pruneTrackedElements(){if(this.elements.size<=this.config.maxTrackedElements)return;const e=[...this.elements].sort(([,e],[,t])=>{const s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).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 s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).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 s=this.resolveElementId(e),n=this.resolveBlockId(e),r=this.createTrackingKey(s,n),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:s,blockId:n,trackingKey:r,...t})}syncTrackedBlock(e,t){const s=this.resolveTrackedBlockId(e),n=this.blockKeys.get(e),r=s;void 0!==n&&""!==n&&n!==r&&(this.blocks.delete(n),this.blockRefs.delete(n)),this.blockKeys.set(e,r),this.blockRefs.set(r,e),this.blocks.set(r,{id:s,...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)),s=e.width*e.height;if(s<=0)return 0;const n=window.innerWidth*window.innerHeight,r=n>0?Math.min(s,n):s;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=[],s=Date.now();for(const[t,s]of this.elements){const n=this.elementRefs.get(t);n?.isConnected?s.visibilityRatio<=0||e.push({blockId:s.blockId,element:{id:s.id,bounds:s.bounds,isVisible:s.visibilityRatio>=this.config.minVisibilityRatio,visibilityRatio:s.visibilityRatio}}):(this.elements.delete(t),this.elementRefs.delete(t))}for(const[e,s]of this.blocks){const n=this.blockRefs.get(e);n?.isConnected?s.visibilityRatio<this.config.minVisibilityRatio||t.push(s.id):(this.blocks.delete(e),this.blockRefs.delete(e))}const n=e.slice(0,this.config.maxTrackedElements);return{timestamp:s,viewport:{width:window.innerWidth,height:window.innerHeight},blockIds:[...new Set([...t,...n.flatMap(e=>e.blockId??[])])],elements:n.map(e=>e.element)}}}function k(e){const{data:t}=e;if("object"!=typeof t||null===t)return;const{code:s,reason:n}=t;return"number"==typeof s?{code:s,..."string"==typeof n&&{reason:n}}:void 0}const w=3;function R(e,t){return e>=500&&t<3}function E(e,t){return t?void 0:k(e)??{code:0}}class S{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(n.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=E(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(s.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(s.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),s=new URL("thamyr",t).pathname;return{origin:t.origin,path:s}}connect(t="wss://localhost:4000",s,n){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},...n};d.info("Connecting to Thamyr at",r),this.socket=e(r.origin,{path:r.path,transports:["websocket","polling"],tryAllTransports:!0,extraHeaders:s,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 s={type:e,payload:this.enrichPayloadWithUiContext(t)},r={id:y()};this.socket.emit(n.USER_INTERACTION,{type:s.type,payload:s.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(n.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 S,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 C(e,t={}){const{block:s,payload:n,submissionId:r,value:i,...o}=t;return{inputEvent:{type:"customInteraction",data:{interactionId:e,...void 0!==s&&{nodeKey:s},...void 0!==n&&{payload:n},...void 0!==r&&{submissionId:r},...void 0!==i&&{value:i}}},...o}}function I(e){return e.receptors??e.intent??[]}function A(e){return"key"in e?e.key:void 0}const j="custom:addToCartResult";function _(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const U=e=>"string"==typeof e&&e.length>0,$=e=>_(e)&&U(e.size)&&U(e.variantId)&&"boolean"==typeof e.orderable;function D(e){if(!_(e.data)||!_(e.data.addToCart))return;const t=e.data.addToCart;return"error"===t.status?{status:"error"}:"resolved"===t.status&&U(t.variantId)&&U(t.productName)&&U(t.size)?{status:"resolved",variantId:t.variantId,productName:t.productName,size:t.size}:"size_selection_needed"===t.status&&U(t.productSku)&&U(t.productName)&&Array.isArray(t.availableSizes)&&t.availableSizes.every($)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const N=e=>_(e)?e:{};function q(e,t,s){const[n,...r]=t;if(!_(e)||!Object.hasOwn(e,n))return;const i=0===r.length?function(e,t){if(_(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[n],s):q(e[n],r,s);return i&&{...e,[n]:i}}function z(e,t){const s=e.blocks??[],n=e.id===t.chapterId?s.findIndex(e=>e.id===t.blockId):-1;if(-1===n)return e;const r=s[n],i=q(r.data,t.contentId.split("."),t);return i?{...e,blocks:s.with(n,{...r,data:i})}:e}function L(e){const t=/^\/?map\/(?<language>[^\/]+)(?:\/(?<slug>.*))?$/v.exec(e)?.groups,s=t?.language;if(void 0===s||""===s)return;const n=t?.slug;return void 0===n||""===n?{language:s}:{language:s,slug:n}}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 s=L(t);if(!s)return;const{language:n,slug:r}=s;if(void 0===r){const{data:t}=await e.content.listDocuments({language:n},{throwOnError:!0});return{kind:"index",language:n,entries:t}}const i=`/map/${n}/${r}`,o=await K(async()=>e.content.getDocumentByPath({path:i},{throwOnError:!0}));if(o)return{kind:"document",language:n,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:n,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:s,payload:n,block:r}=e,i=void 0===s||"string"==typeof s||(e=>Array.isArray(e)&&e.every(e=>"string"==typeof e))(s),o=void 0===n||P(n);if(i&&o&&(void 0===r||"string"==typeof r)&&V(t))return{type:"interact",id:t,...void 0!==s&&{value:s},...void 0!==n&&{payload:n},...void 0!==r&&{block:r}}}function F(e){if(P(e))switch(e.type){case"link":return function(e){const{url:t,newTab:s}=e;return(void 0===s||"boolean"==typeof s)&&V(t)&&W(t)?{type:"link",url:t,...void 0!==s&&{newTab:s}}: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),s=[];for(const e of new Set(t.keys())){const n=t.getAll(e).filter(e=>"string"==typeof e),r=e.endsWith("[]");n.length>0&&s.push([r?e.slice(0,-2):e,r||n.length>1?n:n[0]])}return Object.fromEntries(s)}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:s,submissionId:n,message:r,redirect:i,errors:o,results:a}=t;var c;return("accepted"===s||"refused"===s)&&V(n)&&Z(r)&&Z(i)&&(void 0===o||Array.isArray(o)&&o.every(X))&&(P(c=a)&&Object.values(c).every(ee))?{status:s,submissionId:n,results:a,...void 0!==r&&{message:r},...void 0!==i&&W(i)&&{redirect:i},...void 0!==o&&{errors:o}}:void 0}const se={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},ne=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function re(e,t){t||(t=new Map);for(const s of e)"in"in s?s.key&&t.set(s.key,{in:s.in,map:s.map}):"key"in s?t.set(s.key,{map:s.map}):s.args&&re(s.args,t);return t}function ie(e,t){const s={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},n=re(t);function r(e,t,n){let r=s[e];void 0===r&&(r=Object.create(null),s[e]=r),r[t]=n}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=n.get(i.key),t=e.map||i.key;e.in&&r(e.in,t,a)}else s.body=a;else for(const[e,t]of Object.entries(a??{})){const o=n.get(e);if(o)if(o.in){const s=o.map||e;r(o.in,s,t)}else s[o.map]=t;else{const s=ne.find(([t])=>e.startsWith(t));if(s){const[n,i]=s;r(i,e.slice(n.length),t)}else if("allowExtra"in i&&i.allowExtra)for(const[s,n]of Object.entries(i.allowExtra))if(n){r(s,e,t);break}}}return function(e){for(const[t,s]of Object.entries(e))"body"!==t&&(!s||"object"!=typeof s||Array.isArray(s)||Object.keys(s).length||delete e[t])}(s),s}const oe=({allowReserved:e,explode:t,name:s,style:n,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"}})(n));switch(n){case"label":return`.${t}`;case"matrix":return`;${s}=${t}`;case"simple":return t;default:return`${s}=${t}`}}const i=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),o=r.map(t=>"label"===n||"simple"===n?e?t:encodeURIComponent(t):ae({allowReserved:e,name:s,value:t})).join(i);return"label"===n||"matrix"===n?i+o:o},ae=({allowReserved:e,name:t,value:s})=>{if(null==s)return"";if("object"==typeof s)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?s:encodeURIComponent(s)}`},ce=({allowReserved:e,explode:t,name:s,style:n,value:r,valueOnly:i})=>{if(r instanceof Date)return i?r.toISOString():`${s}=${r.toISOString()}`;if("deepObject"!==n&&!t){let t=[];Object.entries(r).forEach(([s,n])=>{t=[...t,s,e?n:encodeURIComponent(n)]});const i=t.join(",");switch(n){case"form":return`${s}=${i}`;case"label":return`.${i}`;case"matrix":return`;${s}=${i}`;default:return i}}const o=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),a=Object.entries(r).map(([t,r])=>ae({allowReserved:e,name:"deepObject"===n?`${s}[${t}]`:t,value:r})).join(o);return"label"===n||"matrix"===n?o+a:a},le=/\{[^{}]+\}/g,ue=({baseUrl:e,path:t,query:s,querySerializer:n,url:r})=>{let i=(e??"")+(r.startsWith("/")?r:`/${r}`);t&&(i=(({path:e,url:t})=>{let s=t;const n=t.match(le);if(n)for(const t of n){let n=!1,r=t.substring(1,t.length-1),i="simple";r.endsWith("*")&&(n=!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)){s=s.replace(t,oe({explode:n,name:r,style:i,value:o}));continue}if("object"==typeof o){s=s.replace(t,ce({explode:n,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){s=s.replace(t,`;${ae({name:r,value:o})}`);continue}const a=encodeURIComponent("label"===i?`.${o}`:o);s=s.replace(t,a)}return s})({path:t,url:i}));let o=s?n(s):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(i+=`?${o}`),i};function de(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 he=async(e,t)=>{const s="function"==typeof t?await t(e):t;if(s)return"bearer"===e.scheme?`Bearer ${s}`:"basic"===e.scheme?`Basic ${btoa(s)}`:s},ye=({parameters:e={},...t}={})=>s=>{const n=[];if(s&&"object"==typeof s)for(const r in s){const i=s[r];if(null==i)continue;const o=e[r]||t;if(Array.isArray(i)){const e=oe({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&n.push(e)}else if("object"==typeof i){const e=ce({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&n.push(e)}else{const e=ae({allowReserved:o.allowReserved,name:r,value:i});e&&n.push(e)}}return n.join("&")},pe=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const fe=e=>ue({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:ye(e.querySerializer),url:e.url}),me=(e,t)=>{const s={...e,...t};return s.baseUrl?.endsWith("/")&&(s.baseUrl=s.baseUrl.substring(0,s.baseUrl.length-1)),s.headers=be(e.headers,t.headers),s},ge=e=>{const t=[];return e.forEach((e,s)=>{t.push([s,e])}),t},be=(...e)=>{const t=new Headers;for(const s of e){if(!s)continue;const e=s instanceof Headers?ge(s):Object.entries(s);for(const[s,n]of e)if(null===n)t.delete(s);else if(Array.isArray(n))for(const e of n)t.append(s,e);else void 0!==n&&t.set(s,"object"==typeof n?JSON.stringify(n):n)}return t};class ve{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 s=this.getInterceptorIndex(e);return!!this.fns[s]&&(this.fns[s]=t,e)}use(e){return this.fns.push(e),this.fns.length-1}}const ke=ye({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),we={"Content-Type":"application/json"},Re=(e={})=>({...se,headers:we,parseAs:"auto",querySerializer:ke,...e}),Ee=(e={})=>{let t=me(Re(),e);const s=()=>({...t}),n={error:new ve,request:new ve,response:new ve},r=async e=>{const s={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:be(t.headers,e.headers),serializedBody:void 0};s.security&&await async function(e){for(const t of e.security??[]){if(pe(e,t.name))continue;const s=await he(t,e.auth);if(!s)continue;const n=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[n]=s;break;case"cookie":e.headers.append("Cookie",`${n}=${s}`);break;default:e.headers.set(n,s)}}}(s),s.requestValidator&&await s.requestValidator(s),void 0!==s.body&&s.bodySerializer&&(s.serializedBody=s.bodySerializer(s.body)),void 0!==s.body&&""!==s.serializedBody||s.headers.delete("Content-Type");return{opts:s,url:fe(s)}},i=async e=>{const s=e.throwOnError??t.throwOnError,i=e.responseStyle??t.responseStyle;let o,a;try{const{opts:t,url:s}=await r(e),i={redirect:"follow",...t,body:de(t)};o=new Request(s,i);for(const e of n.request.fns)e&&(o=await e(o,t));const c=t.fetch;a=await c(o);for(const e of n.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 s;switch(e){case"arrayBuffer":case"blob":case"text":s=await a[e]();break;case"formData":s=new FormData;break;case"stream":s=a.body;break;default:s={}}return"data"===t.responseStyle?s:{data:s,...l}}let s;switch(e){case"arrayBuffer":case"blob":case"formData":case"text":s=await a[e]();break;case"json":{const e=await a.text();s=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(s),t.responseTransformer&&(s=await t.responseTransformer(s))),"data"===t.responseStyle?s:{data:s,...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 n.error.fns)t&&(r=await t(r,a,o,e));if(r=r||{},s)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:s,url:i}=await r(t);return function({onRequest:e,onSseError:t,onSseEvent:s,responseTransformer:n,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 m=()=>{try{y.cancel()}catch{}};p.addEventListener("abort",m);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),n&&(a=await n(a))),s?.({data:a,event:o,id:d,retry:c}),i.length&&(yield a)}}}finally{p.removeEventListener("abort",m),y.releaseLock()}break}catch(e){if(t?.(e),void 0!==o&&y>=o)break;const s=Math.min(c*2**(y-1),a??3e4);await h(s)}}}()}}({...s,body:s.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(const e of n.request.fns)e&&(r=await e(r,s));return r},serializedBody:de(s),url:i})};return{buildUrl:e=>fe({...t,...e}),connect:o("CONNECT"),delete:o("DELETE"),get:o("GET"),getConfig:s,head:o("HEAD"),interceptors:n,options:o("OPTIONS"),patch:o("PATCH"),post:o("POST"),put:o("PUT"),request:i,setConfig:e=>(t=me(t,e),s()),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 Se{client;constructor(e){this.client=e.client}}class Te{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 Oe extends Se{getPage(e,t){const s=ie([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,...s})}listTopics(e,t){const s=ie([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}",...t,...s})}getTopicContents(e,t){const s=ie([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,...s})}getDocumentBySlug(e,t){const s=ie([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,...s})}getDocumentByGroup(e,t){const s=ie([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,...s})}getDocumentByPath(e,t){const s=ie([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,...s})}listDocuments(e,t){const s=ie([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/documents/{language}",...t,...s})}}class xe extends Se{getShared(e,t){const s=ie([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}share(e,t){const s=ie([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}}class Ce extends Se{getSimilar(e,t){const s=ie([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,...s})}getRecommendations(e,t){const s=ie([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,...s})}}class Ie extends Se{getLast(e,t){const s=ie([e],[{args:[{in:"query",key:"storyId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/whisper",...t,...s})}}class Ae extends Se{trackEvent(e,t){const s=ie([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,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class je extends Se{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const s=ie([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/add",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}removeItemFromCart(e,t){const s=ie([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/remove",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}updateProductQuantity(e,t){const s=ie([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,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class _e extends Se{similar(e,t){const s=ie([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,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}related(e,t){const s=ie([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,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}getItemByPath(e,t){const s=ie([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,...s})}}class Ue extends Se{static __registry=new Te;constructor(e){super(e),Ue.__registry.set(this,e.key)}_content;get content(){return this._content??=new Oe({client:this.client})}_stories;get stories(){return this._stories??=new xe({client:this.client})}_products;get products(){return this._products??=new Ce({client:this.client})}_whisper;get whisper(){return this._whisper??=new Ie({client:this.client})}_analytics;get analytics(){return this._analytics??=new Ae({client:this.client})}_cart;get cart(){return this._cart??=new je({client:this.client})}_skesis;get skesis(){return this._skesis??=new _e({client:this.client})}}class $e extends Error{status;body;response;request;constructor(e,t,s){const n=t?.status,r=s?`${s.method} ${s.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=n,this.body=e,this.response=t,this.request=s}}function De(e){const t=Ee(Re({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,s,n,r)=>{if(!(r.throwOnError??t.getConfig().throwOnError??!1)||!0===r.signal?.aborted)return e;return new $e(""===e?{}:e??{},s,n)}),t}export{M as ACTION_TYPES,j as ADD_TO_CART_RESULT_BLOCK,Ue as CallimacusApi,f as CallimacusEvent,S as CallimacusService,o as ChapterStatus,n as ClientEvents,J as DELIVER_RESULT_BLOCK,i as GalleryMode,O as LANDING_VALUE_MAX_LENGTH,w as MAX_HANDSHAKE_RETRIES,r as SLInputEventType,s as ServerEvents,$e as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,F as actionOf,D as addToCartResultOf,z as applyBlockPatch,A as blockKeyOf,T as callimacusService,E as classifyConnectError,De as createContractClient,te as deliverResultOf,g as extractTtsAudio,Y as fieldsOf,C 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,I as receptorsOf,B as resolveMapPage,R as shouldRetryHandshake,h as transformImageUrl};
|
|
8
|
+
export*from"@callimacus/intent";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 E{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 S=new E,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 j=e=>_(e)?e:{};function U(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:{...j(e.values),...t.values},inputs:{...j(e.inputs),...t.inputs},textRuns:{...j(e.textRuns),...t.textRuns}}}(e[r],n):U(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=U(s.data,t.contentId.split("."),t);return i?{...e,blocks:n.with(r,{...s,data:i})}:e}function z(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 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 M(e,t){const n=z(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 K(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 K(async()=>e.skesis.getItemByPath({path:i},{throwOnError:!0}));return a&&{kind:"item",language:r,slug:s,itemPage:a}}const B=["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: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||P(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(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 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=>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===Y&&P(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))&&(P(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??[]}),Ee=e=>e.lines.map(e=>({id:e.id,merchandiseId:e.merchandise.id,quantity:e.quantity})),Se=e=>e.map(({merchandiseId:e,quantity:t})=>({merchandiseId:e,quantity:t}));function Ie(e,t){const n=Se(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.storeDomain}`,i=`callimacus:shopify-cart-lock:${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:Ee(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}}async function o(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))}}async function a(){return o(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(Se(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 c={getCart:a,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 o(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.id===r.target||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 c.removeItem(i.line.id)).data??s.data,error:{code:"refused",message:i.warning.message},warnings:s.warnings}},removeItem:async e=>pe(e)?o(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:Se(n.lines.filter(t=>t.id!==e))})}):me("invalid_input","No cart line to remove."),updateQuantity:async(e,t)=>pe(e)&&Re(t,0)?o(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:Se(s)})}):me("invalid_input",`Not a cart line and quantity: ${e} × ${t}.`),async checkout(){const e=await a();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.");try{s(t.checkoutUrl)}catch(e){return me("cart_unavailable",Oe(e))}return ge(t.checkoutUrl,e.warnings)}};return c}const je=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),Ue=e=>"string"==typeof e&&""!==e.trim()?e.trim():void 0;const Le=e=>void 0!==e&&/^[a-z]{2}$/iv.test(e)?e.toUpperCase():void 0;function ze(e,t){const n=function(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}}(e?.domain??t?.storeDomain),r=e?.storefrontToken??Ue(t?.storefrontToken),s=e?.sourceName??void 0,i=Le(t?.country);return{cartEnabled:e?.cartEnabled??!0,...void 0!==n&&{storeDomain:n},...void 0!==r&&{storefrontToken:r},...void 0!==s&&{sourceName:s},countries:e?.countries??{},...void 0!==i&&{country:i}}}async function Ke(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 ze(200===s?.status?function(e){if(!je(e)||"boolean"!=typeof e.cartEnabled)return;const t=je(e.countries)?Object.fromEntries(Object.entries(e.countries).filter(e=>"string"==typeof e[1])):{};return{domain:Ue(e.domain)??null,storefrontToken:Ue(e.storefrontToken)??null,sourceName:Ue(e.sourceName)??null,countries:t,cartEnabled:e.cartEnabled}}(r):void 0,t)}catch{return ze(void 0,t)}}function Me(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 Le(i?.[1])}(n,t)??r;return{...s,...void 0!==i&&{country:i}}}const Be={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 Ve(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&&Ve(n.args,t);return t}function He(e,t){const n={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},r=Ve(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=Pe.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 We=({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):Ge({allowReserved:e,name:n,value:t})).join(i);return"label"===r||"matrix"===r?i+o:o},Ge=({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)}`},Fe=({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])=>Ge({allowReserved:e,name:"deepObject"===r?`${n}[${t}]`:t,value:s})).join(o);return"label"===r||"matrix"===r?o+a:a},Je=/\{[^{}]+\}/g,Ye=({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(Je);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,We({explode:r,name:s,style:i,value:o}));continue}if("object"==typeof o){n=n.replace(t,Fe({explode:r,name:s,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){n=n.replace(t,`;${Ge({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 Qe(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 Ze=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},Xe=({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=We({allowReserved:o.allowReserved,explode:!0,name:s,style:"form",value:i,...o.array});e&&r.push(e)}else if("object"==typeof i){const e=Fe({allowReserved:o.allowReserved,explode:!0,name:s,style:"deepObject",value:i,...o.object});e&&r.push(e)}else{const e=Ge({allowReserved:o.allowReserved,name:s,value:i});e&&r.push(e)}}return r.join("&")},et=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const tt=e=>Ye({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:Xe(e.querySerializer),url:e.url}),nt=(e,t)=>{const n={...e,...t};return n.baseUrl?.endsWith("/")&&(n.baseUrl=n.baseUrl.substring(0,n.baseUrl.length-1)),n.headers=st(e.headers,t.headers),n},rt=e=>{const t=[];return e.forEach((e,n)=>{t.push([n,e])}),t},st=(...e)=>{const t=new Headers;for(const n of e){if(!n)continue;const e=n instanceof Headers?rt(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 it{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 ot=Xe({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),at={"Content-Type":"application/json"},ct=(e={})=>({...Be,headers:at,parseAs:"auto",querySerializer:ot,...e}),ut=(e={})=>{let t=nt(ct(),e);const n=()=>({...t}),r={error:new it,request:new it,response:new it},s=async e=>{const n={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:st(t.headers,e.headers),serializedBody:void 0};n.security&&await async function(e){for(const t of e.security??[]){if(et(e,t.name))continue;const n=await Ze(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:tt(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:Qe(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:Qe(n),url:i})};return{buildUrl:e=>tt({...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=nt(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 dt{client;constructor(e){this.client=e.client}}class lt{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 ht extends dt{getPage(e,t){const n=He([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=He([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=He([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=He([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=He([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=He([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=He([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 yt extends dt{getShared(e,t){const n=He([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=He([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 ft extends dt{getSimilar(e,t){const n=He([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=He([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 pt extends dt{getLast(e,t){const n=He([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 mt extends dt{trackEvent(e,t){const n=He([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 gt extends dt{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const n=He([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=He([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=He([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 vt extends dt{getStorefrontSettings(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/shopify/storefront",...e})}}class bt extends dt{similar(e,t){const n=He([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=He([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=He([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 kt extends dt{static __registry=new lt;constructor(e){super(e),kt.__registry.set(this,e.key)}_content;get content(){return this._content??=new ht({client:this.client})}_stories;get stories(){return this._stories??=new yt({client:this.client})}_products;get products(){return this._products??=new ft({client:this.client})}_whisper;get whisper(){return this._whisper??=new pt({client:this.client})}_analytics;get analytics(){return this._analytics??=new mt({client:this.client})}_cart;get cart(){return this._cart??=new gt({client:this.client})}_shopify;get shopify(){return this._shopify??=new vt({client:this.client})}_skesis;get skesis(){return this._skesis??=new bt({client:this.client})}}class wt 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 Rt(e){const t=ut(ct({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 wt(""===e?{}:e??{},n,r)}),t}export{B as ACTION_TYPES,$ as ADD_TO_CART_RESULT_BLOCK,kt as CallimacusApi,p as CallimacusEvent,E 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,wt as ThamyrHttpError,t as ThamyrResponseType,f as UserInteractionType,F as actionOf,N as addToCartResultOf,L as applyBlockPatch,x as blockKeyOf,S as callimacusService,Me as cartSettingsFor,T as classifyConnectError,Rt as createContractClient,qe as createPageStorage,Ne as createShopifyCart,te as deliverResultOf,g as extractTtsAudio,J as fieldsOf,O as interactionRound,a as isCustomBlock,u as isMasterProduct,c as isSetProduct,we as isVariantGid,C as landingRound,l as logger,ze as mergeShopifySettings,k as parseConnectRejection,z as parseMapPath,y as randomUuid,Ke as readShopifySettings,A as receptorsOf,M as resolveMapPage,R as shouldRetryHandshake,h as transformImageUrl};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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/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],"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","jsonBodySerializer","bodySerializer","body","_key","extraPrefixes","$body_","$headers_","$path_","$query_","buildKeyMap","in","buildClientParams","params","create","query","writeSlot","slot","record","arg","name","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.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/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],"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","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","run","work","cartEnabled","getCart","client","addItem","variantGidOf","soldOut","warning","target","soldOutLine","lineId","lineIds","checkout","totalQuantity","checkoutUrl","textOf","toUpperCase","mergeShopifySettings","storefront","domain","trimmed","host","hostOf","countries","readShopifySettings","storefrontOf","cartSettingsFor","locale","buyerCountry","wanted","toLowerCase","match","countryFor","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","cause","createContractClient","Authorization","accessToken","credentials","withCredentials"],"mappings":"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"}
|